将列表的元素作为最后一个元素插入列表中的列表 in python
Insert elements of a list as last elements into lists in list in 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 方式,也许是 zip?
也许借助 zip,即
[i+[j] for i,j in zip(list1,list2)]
[[1, 'a', 'I'], [2, 'b', 'II'], [3, 'c', 'III']]
@Dark 解决方案的变体:
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 个列表具有相同的长度,我的方法会更容易调整以保持其工作。
list1
大于 list2
:
list3 = [sublist + [list2[i] if i < len(list2) else None] for i, sublist in enumerate(list1)]
list2
大于 list1
:
# no problem here
你这样做就完全没问题了:
for i in range(len(list1)):
list1[i].append(list2[i])
否则你可以使用那个衬垫:
[i+[list2[i[0] -1]] for i in list1]
但这是其中之一,任何阅读您的代码的人都无法一口气理解。我会推荐更清晰的第一个选项,乍一看就说明了它的作用。
列表列表
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 方式,也许是 zip?
也许借助 zip,即
[i+[j] for i,j in zip(list1,list2)]
[[1, 'a', 'I'], [2, 'b', 'II'], [3, 'c', 'III']]
@Dark 解决方案的变体:
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 个列表具有相同的长度,我的方法会更容易调整以保持其工作。
list1
大于list2
:list3 = [sublist + [list2[i] if i < len(list2) else None] for i, sublist in enumerate(list1)]
list2
大于list1
:# no problem here
你这样做就完全没问题了:
for i in range(len(list1)):
list1[i].append(list2[i])
否则你可以使用那个衬垫:
[i+[list2[i[0] -1]] for i in list1]
但这是其中之一,任何阅读您的代码的人都无法一口气理解。我会推荐更清晰的第一个选项,乍一看就说明了它的作用。