'buildin_function_or_method' объект не является подпиской Ошибка в Python - PullRequest
0 голосов
/ 02 декабря 2019

У меня есть следующий код:

x = [[],[]]
y = [[],[]]

for a in range(36):
    x.append[0](a)
    x.append[1](a)
for l in range(36,71,1):
    y.append[0](l)
    y.append[1](l)

z = x+y

Почему-то мне выдает эту ошибку:

'builtin_function_or_method' object is not subscriptable

Ответы [ 3 ]

0 голосов
/ 02 декабря 2019
x[0].append(a)

append - это метод для списка, который не может быть индексирован.

0 голосов
/ 02 декабря 2019

Другие упоминали, почему это не удалось, но я добавлю, что, если ваша цель состоит в том, чтобы составить списки списков и объединить их вместе, ваш исправленный код:

x = [[],[]]
y = [[],[]]

for a in range(36):
    x[0].append(a)
    x[1].append(a)
for l in range(36,71):
    y[0].append(l)
    y[1].append(l)

z = x+y

является многословнымспособ достижения этого. Было бы проще полностью исключить циклы / добавления, например:

x = [list(range(36)), list(range(36))]
y = [list(range(36,71)), list(range(36,71))]
z = x+y

Или, если вы используете Python 3.8 и хотите опробовать новый оператор моржа, чтобы избежать вызова того же list(range())дважды:

x = [(l := list(range(36))), l]
y = [(l := list(range(36,71))), l]
z = x+y
0 голосов
/ 02 декабря 2019

Вы не можете индексировать функцию append(). Вы можете сделать это с помощью функции insert(), однако так:

list.insert(index, element)

append() имеет только один параметр, и это элемент, который будет добавлен в end списка.

list.append(item)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...