嵌套lis的列表操作

2024-04-19 14:39:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下清单:

list = [(1,info1),(2,info2),(3,info3)...]

每个信息由一个元组列表组成

info1 = [(a1,b1,c1),(a1',b1',c1'),(a1",b1",c1")...]

对于list中的每个元素,我希望有以下内容:

otherlist = [(1,(a1,b1,c1)),(1,(a1',b1',c1')),(1,(a1",b1",c1"))...]

也就是说:info前面的索引要放在每个信息元组前面

我认为这是可行的,但我不能做到这一点与简单的列表理解

感谢您的帮助:)


Tags: info信息元素列表a1listb1元组
2条回答

使用嵌套的列表理解:

otherlist = [[(L[0], t) for t in L[1]] for L in lst]

因此,对于lst中的每个元素L,我们创建一个包含(L[0], elements of L[1])的元组的新列表。你知道吗

演示:

>>> lst = [(1, [('a1', 'b1', 'c1'), ("a1'", "b1'", "c1'"), ('a1"', 'b1"', 'c1"')]), (2, [('a3', 'b3', 'c3'), ("a3'", "b3'", "c3'"), ('a3"', 'b3"', 'c3"')]), (3, [('a3', 'b3', 'c3'), ("a3'", "b3'", "c3'"), ('a3"', 'b3"', 'c3"')])]
>>> [[(L[0], t) for t in L[1]] for L in lst]
[[(1, ('a1', 'b1', 'c1')), (1, ("a1'", "b1'", "c1'")), (1, ('a1"', 'b1"', 'c1"'))], [(2, ('a3', 'b3', 'c3')), (2, ("a3'", "b3'", "c3'")), (2, ('a3"', 'b3"', 'c3"'))], [(3, ('a3', 'b3', 'c3')), (3, ("a3'", "b3'", "c3'")), (3, ('a3"', 'b3"', 'c3"'))]]
otherlist = [(x[0],y) for x in first_list for y in x[1]]

相关问题 更多 >