首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在python中使用列表理解将0添加到二维列表中?

如何在python中使用列表理解将0添加到二维列表中?
EN

Stack Overflow用户
提问于 2018-06-14 04:10:15
回答 2查看 32关注 0票数 1

如果可能的话,我正在尝试将这个for循环转换为“列表理解”格式:

此循环将0添加到二维列表中

代码语言:javascript
复制
test_list = [['string1'],['string2'],['string3']]
for i in range(len(test_list)):
    test_list[i].insert(1, 0)

输出:

代码语言:javascript
复制
test_list = [['string1',0],['string2',0],['string3',0]]

我试过了,但由于某种原因,它不起作用。

代码语言:javascript
复制
test_list = [test_list[i].insert(1, 0) for i in range(len(test_list))]
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-14 04:14:16

它不起作用,因为list.insert()就地修改了列表并返回None,因此您最终会得到一个Nones的列表,它是所有.insert()s的返回值。

列表理解格式不能满足您的需要,因为它是为创建新列表而设计的,而您似乎想要就地修改列表。如果您想创建新列表,您可以使用以下命令:

代码语言:javascript
复制
test_list = [sublist + [0] for sublist in test_list]

这是因为lists上的+运算符会创建并返回一个新列表。

票数 2
EN

Stack Overflow用户

发布于 2018-06-14 04:14:14

你的问题是“原因是什么?”

这条线

代码语言:javascript
复制
 test_list = [test_list[i].insert(1, 0) for i in range(len(test_list))]

表示“列出该表达式的返回值”。

表达式[].insert()的返回值为None。test_list将被设置为None列表。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50845466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档