gpt4 book ai didi

python - 使用压缩元组的列表理解

转载 作者:太空宇宙 更新时间:2023-11-03 15:33:57 24 4
gpt4 key购买 nike

我有两个列表。

list_1 = [[1, 0, 0, 1], [0, 2, 0, 0]]
list_2 = [(1,'A'), (2,'B'), (3,'C'), (4,'D')]

我想生成一个新列表,list_3。

[[(1, 'A'), (4, 'D')], [(2, 'B'), (2, 'B')]]

我想使用列表理解。

list_3 = [[list_2[index]*val for index, val in enumerate(elem) if val > 0] for elem in list_1]

但它产生了:

[[(1, 'A'), (4, 'D')], [(2, 'B', 2, 'B')]]

您可以看到在第二个术语中元组被解包。如何保留元组?

最佳答案

list_1 = [[1, 0, 0, 1], [0, 2, 0, 0]]
list_2 = [(1,'A'), (2,'B'), (3,'C'), (4,'D')]
list_3 = [
[
item
for index, val in enumerate(elem) if val > 0
for item in [list_2[index]] * val
]
for elem in list_1
]
print(list_3)
# [[(1, 'A'), (4, 'D')], [(2, 'B'), (2, 'B')]]

关于python - 使用压缩元组的列表理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56085360/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com