将列表的元素作为最后元素插入到python列表中的列表中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将列表的元素作为最后元素插入到python列表中的列表中相关的知识,希望对你有一定的参考价值。

列表清单

list1 = [[1,'a'],[2,'b'],[3,'c']]

应该延长

list2 = ['I','II','III']

所以它变成了

list1 = [[1,'a','I'],[2,'b','II'],[3,'c','III']]

我的尝试

[i+j for i,j in zip(list1,list2)]

似乎是错的。我目前的方式是

list1 = [[1, 'a'], [2, 'b'], [3, 'c']]
list2 = ['I', 'II', 'III']
for x in range(0,len(list1)):
    list1[x].append(list2[x])

这不是一种优雅的方式。什么是推荐的pythonic方式,也许有拉链?

答案

也许在拉链的帮助下

[i+[j] for i,j in zip(list1,list2)]

[[1, 'a', 'I'], [2, 'b', 'II'], [3, 'c', 'III']]
另一答案

@ Dark's解决方案的变体:

list1 = [[1,'a'],[2,'b'],[3,'c']]

list2 = ['I','II','III']

list3 = [sublist + [list2[i]] for i, sublist in enumerate(list1)]
print(list3)  # -> [[1, 'a', 'I'], [2, 'b', 'II'], [3, 'c', 'III']]

如果您不能保证2个列表的长度相同,我的方法稍微容易调整以保持其正常工作。

  • list1list2大: list3 = [sublist + [list2[i] if i < len(list2) else None] for i, sublist in enumerate(list1)]
  • list2list1大: # no problem here
另一答案

你这样做,这很好:

for i in range(len(list1)):
    list1[i].append(list2[i])

否则你可以使用那个衬垫:

[i+[list2[i[0] -1]] for i in list1]

但这是其中一个任何读过你的代码的人都不会理解的。我建议使用更清晰的第一个选项,说明乍一看它的作用。

以上是关于将列表的元素作为最后元素插入到python列表中的列表中的主要内容,如果未能解决你的问题,请参考以下文章

Python列表的增删改查

将列表作为单个元素插入到元组中

python——列表方法

将列表中的缺失元素作为每个时间窗口组的行插入到 DataFrame

Python中 appendextendinsertadd 区别

python怎么把列表中的元素添加到数组