向python列表中的所有sub_list添加1常量

时间:2018-07-31 08:14:18

标签: python list

我有一个列表:

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的错误。

7 个答案:

答案 0 :(得分:4)

list.insertin-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']]