这是因为python中的
我有一个列表:
list1=[[2,3],[4,5],[6,7]]
我想在索引2 的列表中的所有子列表中添加一个值"1">
最终输出应该是:
list2=[[2,3,"one"],[4,5,"one"],[6,7,"one"]]
尝试使用:
for list2 in list1:
print list2.insert(2,"one")
但其显示错误为CCD_ 1。
list.insert
是一个就地操作,返回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']]
更改代码如下:
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']]
您需要:
list1=[[2,3],[4,5],[6,7]]
for l in list1:
l.append("one")
输出:
[[2, 3, 'one'], [4, 5, 'one'], [6, 7, 'one']]
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']]
只需使用列表理解
>>> list1 = [[2,3],[4,5],[6,7]]
>>> [e + ['one'] for e in list1]
[[2, 3, 'one'], [4, 5, 'one'], [6, 7, 'one']]
list.insert
不返回任何值。因此,您的代码正确地插入了要列出的值,但您试图以错误的方式打印此列表。应该是:
for list2 in list1:
list2.insert(2,"one")
print list2
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']]