web-dev-qa-db-ja.com

forループ内のappend()をリストします

Pythonでは、ループを使用してリストに最も基本的な追加機能を実行しようとしています:ここに何が欠けているのか分かりません:

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

戻り値:'NoneType' object has no attribute 'append'

21
jim basquiat

list.append関数は値を返しませんが(None)、メソッドを呼び出すために使用しているリストに値を追加するだけです。

最初のループラウンドでは、Noneappendが返されないため)をaに割り当て、2回目のラウンドではa.appendを呼び出します。 a is Noneそれはあなたが捕らえている例外を発生させます

次のように変更するだけです。

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

編集:フアンがコメントで言ったように、それは何かを返します、None

37
Rafael Aguilar

割り当ては必要ありません。list.append(x)は常にxaに追加するため、aを再定義する必要はありません。

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

は、あなたが必要とすることすべてです。これは、listsが可変であるため機能します。

データ構造に関するドキュメント も参照してください。

7
linusg

再割り当てする必要はありません。

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