我有一个列表,比如说,a = [[1,2],[3,4],[5,6]]
我想将字符串 'a'
添加到列表 a
中的每个项目。
当我使用时:
a = [x.append('a') for x in a]
它返回 [None,None,None]
。
但如果我使用:
a1 = [x.append('a') for x in a]
然后它做了一些奇怪的事情。
a
,但不是 a1
是 [[1,2,'a'],[3,4,'a'],[5, 6,'a']]
.
我不明白为什么第一个调用返回 [None, None, None]
也不明白为什么第二个调用返回 a
而不是 a1
。
最佳答案
list.append
改变列表本身并返回 None
。列表推导用于存储结果,如果您只想更改原始列表,则在这种情况下这不是您想要的。
>>> x = [[1, 2], [3, 4], [5, 6]]
>>> for sublist in x:
... sublist.append('a')
...
>>> x
[[1, 2, 'a'], [3, 4, 'a'], [5, 6, 'a']]
关于python - 将项目 append 到列表理解中的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2505529/