Python中的列表的Zip/Map列表

2024-09-30 08:19:06 发布

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

我有如下清单:

L1 = [list]

L2 = [ [l1], [l2], ..., [ln] ]

我需要把这些列表映射到

^{pr2}$

现在我只是重复l1n次,然后把它们拉起来。有人能给我一个更优雅的暗示吗?换句话说,我希望这样做:

L=[]
L.append(L1 + L2[0])
L.append(L1 + L2[1])
...

如果解决方案能够适应以下变化也会很好:

L1 = [list1, list2, ..., listk]

然后我变成

[ [list1 + list2 + ... + listk + l1] , ..., [list1 + list2 + ... + listk + ln] ]

谢谢!在


Tags: l1列表解决方案listlnappendlist2l2
2条回答

使用列表理解是python方法:

L = [ L1 + list for list in L2 ]
L=[]
L.append(L1 + L2[0])
L.append(L1 + L2[1])
...

相当于

^{pr2}$

如果L1 = [list1, list2, ..., listk]是一个列表列表,例如

In [43]: L1 = [[1,2],[2,3]]

那么list1 + list2 + ... + listk可以用sum(L1, [])组成:

In [44]: sum(L1,[])
Out[44]: [1, 2, 2, 3]

In [45]: [1,2]+[2,3]
Out[45]: [1, 2, 2, 3]

所以在这种情况下你可以使用

L1_sum = sum(L1, [])
L = [ L1_sum+item for item in L2 ]

(旁白:也可以使用L = [ sum(L1, [])+item for item in L2 ],但这将为L2中的每个项目重复一次sum(L1, [])。)

相关问题 更多 >

    热门问题