我创建了一行,以下列方式将对象附加到列表中
>>> 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 列表来附加值,因此我不需要将列表理解行分配给某些东西。
我的问题更多是关于编程正确性的问题
我应该放弃列表理解而只使用简单的 for 表达式吗?
>>> for i, x in enumerate(bar_list):
... foo.append(sum(i,x))
还是有正确的方法来使用列表理解和分配给任何东西?
回答
谢谢@user2387370、@kindall 和@Martijn Pieters。对于其余的注释,我使用 append 是因为我没有使用 list(),我没有使用 i+x,因为这只是一个简化的示例。
我离开它如下:
histogramsCtr = hist_impl.HistogramsContainer()
for index, tupl in enumerate(local_ranges_per_histogram_list):
histogramsCtr.append(doSubHistogramData(index, tupl))
return histogramsCtr