我有一个列表:
list1=[[2,3],[4,5],[6,7]]
我想在索引2的列表中的所有子列表中添加一个值“一个”
最终输出应为:
list2=[[2,3,"one"],[4,5,"one"],[6,7,"one"]]
尝试:
for list2 in list1:
print list2.insert(2,"one")
但是显示为None
的错误。
答案 0 :(得分:4)
list.insert
是in-place operation并返回None
。相反,您可以使用列表推导:
L = [[2,3],[4,5],[6,7]]
res = [[i, j, 'one'] for i, j in L]
print(res)
[[2, 3, 'one'], [4, 5, 'one'], [6, 7, 'one']]
答案 1 :(得分:3)
如下更改代码:
list1=[[2,3],[4,5],[6,7]]
for subList in list1:
subList.append("one")
print list1
输出为:
[[2, 3, 'one'], [4, 5, 'one'], [6, 7, 'one']]
答案 2 :(得分:3)
您需要:
list1=[[2,3],[4,5],[6,7]]
for l in list1:
l.append("one")
输出:
[[2, 3, 'one'], [4, 5, 'one'], [6, 7, 'one']]
答案 3 :(得分:2)
只使用列表理解
>>> list1 = [[2,3],[4,5],[6,7]]
>>> [e + ['one'] for e in list1]
[[2, 3, 'one'], [4, 5, 'one'], [6, 7, 'one']]
答案 4 :(得分:2)
list.insert()
函数修改列表而不返回它。
您应该随后打印列表:
for list2 in list1:
list2.insert(2,"one")
print(list1)
或者,您可以通过列表理解更轻松地实现您想要做的事情:
list1=[[2,3],[4,5],[6,7]]
list2=[i + ["one"] for i in list1]
print(list2)
都是上述输出:
[[2, 3, 'one'], [4, 5, 'one'], [6, 7, 'one']]
答案 5 :(得分:1)
这是因为python does not return any value中的list.insert
。因此,您的代码将值正确插入列表中,但是您尝试以错误的方式打印此列表。应该是:
for list2 in list1:
list2.insert(2,"one")
print list2
答案 6 :(得分:0)
List_1 = [[2,3],[4,5],[6,7]]
List_2 = [ ]
For i in List_1: #Selecting a sub-list at each iteration
temp = i.append('one') #Adding 'one' to the sub-list
List_2.append() #Adding the modified sublist to List_2
结果:
Print(List_2)
[[2, 3, 'one'], [4, 5, 'one'], [6, 7, 'one']]