Как напечатать два числа из одного списка в Python 2.7 - PullRequest
0 голосов
/ 12 мая 2018

Итак, мне поручили составить небольшую программу для развития навыков в списках. Вот код:

x=[21,23,25,27]
y=[5,6,7,8]
z=x+y
print (z)
z[0]=45
print (z)
a=[x+y]
print a
print (a[1][2])

Что нас просят сделать, так это угадать, что будет печатать код. Но последняя строка не работает, и я всегда получаю ошибки. Эта строка была дана прямо из данного упражнения. Единственный способ показать [1] и [2] Правильно ли это сделать в команде for i in range? Я пробовал другие синтаксисы, которые не работают, и я считаю, что это единственный способ.

Ответы [ 4 ]

0 голосов
/ 12 мая 2018

есть ошибка в вопросе, который вы задали, или в том, что вы написали его здесь, так как a не имеет индекса 1.

a содержит один элемент, который являетсясписок.этот список такой же, как z

z = x+y

создает новый список со всеми элементами x и y

a = [x+y]

a такой же, как [z] список z внутри списка

внутри a есть только [0], который является списком x + y

, у вас может быть [0] [2], который равен 25

, но нета [1]

0 голосов
/ 12 мая 2018

Вы можете использовать для утверждения, как вы сказали.Но есть и другой способ.Вы можете попробовать это:

print(a[:3])

Приведенный выше код будет в основном печатать элементы в a от начала до 2, то есть до 3.

0 голосов
/ 12 мая 2018

Ошибка до индекса a[1].

пример:

x=[21,23,25,27]
y=[5,6,7,8]
z=x+y
print (z)
z[0]=45
print (z)
# a = list of lists, where x+y is the first and only list [[x+y],...]
a=[x+y]
print(a)
# print [x+y]
print (a[0])
# a[1][2] here 1 was out of bounds
# a[0][2] the third member of list [0], i.e. [x+y]
print (a[0][2])
# list of lists, with two memmbers [x, y]
a = [z,y]
print(a)
# first member of x
print(a[0][0])
# print first member of y
print(a[1][0])

Выход:

# print (z)
[21, 23, 25, 27, 5, 6, 7, 8]
# print(z)
[45, 23, 25, 27, 5, 6, 7, 8]
# print(a)
[[21, 23, 25, 27, 5, 6, 7, 8]]
# print(a[0])
[21, 23, 25, 27, 5, 6, 7, 8]
# print(a[0][2])
25
# print([z,y])
[[45, 23, 25, 27, 5, 6, 7, 8], [5, 6, 7, 8]]
# print a[0][0]
45
# print a[1][0]
5
0 голосов
/ 12 мая 2018

a=[x+y], здесь + создаст новый список и добавит его в другой список, чтобы создать двухмерный список с двумя внутренними списками, используйте ,, который действует как разделитель, а + действует как операция конкатенации.поэтому используйте , как

a=[x,y]

Чтобы напечатать элементы с одинаковым индексом, используя одиночное индексирование с новым списком, мы можем создать 2D-список с сохранением значений индекса вместе с

x=[21,23,25,27]
y=[5,6,7,8]
z=x+y
print (z)
z[0]=45
print (z)
a = [[i,j] for i,j in zip(x,y)]
# i is element in x and j is element in y
# [i,j] a new list with elements i and j
print(a)
#a=[x,y]
print (a[0]) # [21,5]
...