python - 将项目 append 到列表理解中的列表

标签 python list append list-comprehension

我有一个列表,比如说,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/

相关文章:

python - 如何根据多列数据从 Pandas 数据框中删除行?

python - Image.open() 无法识别图像文件 - Python?

python - 使用 Couchbase 在给定半径内搜索文档

将字符串转换为链接列表

vb.net 类只读属性作为列表(T)

javascript - 我的代码有什么问题

Python - UnicodeDecodeError : 'charmap' codec can't decode byte 0x9d in position 1070: character maps to <undefined>

python - 如果另一个类属性与列表中的另一个匹配,则添加类属性

jquery - 使用 jQuery 性能创建 DOM 元素

javascript - 在页面加载后动态插入 HTML(并在按键后更改)