Как мне скопировать список в итерации? - PullRequest
1 голос
/ 10 марта 2012

Мне нужно сделать копию списка из списка списков. Следующий код выдает сообщение об ошибке:

y = list[x]
TypeError: unsubscriptable object
a = [[0],[1]]
for x in a:
    y = list[x]
    print y

Что я здесь не так делаю?

Ответы [ 3 ]

4 голосов
/ 10 марта 2012
y = list[x]

Вы уверены, что не хотите вызывать конструктор списка с переменной x в качестве параметра, вместо того, чтобы пытаться получить доступ к элементу 'x' в переменной 'list'?Как в:

y = list(x)
0 голосов
/ 10 марта 2012

list на самом деле является типом, поэтому нет смысла пытаться получить его x элемент.Если вы хотите создать экземпляр списка, вам нужно использовать list(iterable).

Теперь, если вы хотите скопировать список, более простым решением было бы использование модуля copy.

import copy
a = [[0],[1]]
new_list = copy.copy(a[0])

Обратите внимание на тот факт, что если вы хотите скопировать элемент с вложенными элементами, вам придется использовать copy.deepcopy.

0 голосов
/ 10 марта 2012
y=list(x)

Выше должно работать нормально

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