次の方法でオブジェクトをリストに追加する行を作成しました
>>> foo = list()
>>> def sum(a, b):
... c = a+b; return c
...
>>> bar_list = [9,8,7,6,5,4,3,2,1,0]
>>> [foo.append(sum(i,x)) for i, x in enumerate(bar_list)]
[None, None, None, None, None, None, None, None, None, None]
>>> foo
[9, 9, 9, 9, 9, 9, 9, 9, 9, 9]
>>>
この線
[foo.append(sum(i,x)) for i, x in enumerate(bar_list)]
pylint W1060 式は何も割り当てられていませんが、既に foo リストを使用して値を追加しているため、List Comprehension 行を何かに割り当てる必要はありません。
私の質問は、プログラミングの正確さの問題です
リスト内包表記をやめて単純な for 式を使うべきですか?
>>> for i, x in enumerate(bar_list):
... foo.append(sum(i,x))
または、リスト内包表記と何も割り当てないの両方を使用する正しい方法はありますか?
答え
@user2387370、@kindall、@Martijn Pieters に感謝します。残りのコメントについては、list() を使用していないため append を使用します。これは単純化された例であるため、i+x は使用していません。
私はそれを次のように残しました:
histogramsCtr = hist_impl.HistogramsContainer()
for index, tupl in enumerate(local_ranges_per_histogram_list):
histogramsCtr.append(doSubHistogramData(index, tupl))
return histogramsCtr