2017-01-03 4 views
2

В Python, пытаясь сделать самую основную функцию на добавление в список с петлей: Не уверен, что я здесь отсутствует:Python: Список Append() в цикл

a=[] 
for i in range(5):  
    a=a.append(i) 
a 

возвращается: 'NoneType' object has no attribute 'append'

+0

Не 'a = append (i)'. Просто 'a.append (i)'. – khelwood

+0

И еще один обман (возможно, менее канонический, но более полезный для этого конкретного вопроса: http://stackoverflow.com/q/31734042/748858) – mgilson

ответ

12

Функция list.append не возвращает никакого значения (но None), она просто добавляет значение в список, который вы используете, для вызова этого метода.

В первом контуре вокруг вас задаст None (потому что нет-возвращение append) в a, то во втором туре он не будет пытаться вызвать a.append как a is None это поднимет Exception вы Seing

Вам просто нужно изменить его на:

a=[] 
for i in range(5):  
    a.append(i) 
a # the list with the new items. 

Edit: Как сказал Хуан в комментариях это возвращающих что-то, None

+2

Он * делает * возвращает значение. Он возвращает 'None'. –

4

Вы не нуждаетесь в задании, list.append(x) всегда будет добавлять x в a, и поэтому нет необходимости в redefine a.

a = [] 
for i in range(5):  
    a.append(i) 
print(a) 

- это все, что вам нужно.

вижу также документацию: https://docs.python.org/2/tutorial/datastructures.html

3

Нет необходимости переназначить.

a=[] 
for i in range(5):  
    a.append(i) 
a 
Смежные вопросы