在python中向列表中的所有sub_list添加1个常数值



我有一个列表:

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']]
这是因为python中的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']]

最新更新