[英]list comprehension with packed tuples
我有兩個清單。
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')]]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.