[英]Python - Flatten sets and tuples into one list of sets
希望有人可以帮助我解决这个问题。 我有一个集合和元组列表,我想将它展平为一个集合列表。
我有的:
[({'item1', 'item2'}, 'item_a'),
({'item1', 'item2'}, 'item_b'),
({'item2', 'item3'}, 'item_a'),
({'item2', 'item3'}, 'item_b')]
所需的 output:
[{'item1', 'item2', 'item_a'},
{'item1', 'item2', 'item_b'},
{'item2', 'item3', 'item_a'},
{'item2', 'item3', 'item_b'}]
我已经尝试过这些功能,但它不起作用:
list_flat = [item for sublist in list for item in sublist]
和
flat_list = []
for sublist in t:
for item in sublist:
flat_list.append(item)
使用可迭代解包:
>>> l1 = [
... ({'item1', 'item2'}, 'item_a'),
... ({'item1', 'item2'}, 'item_b'),
... ({'item2', 'item3'}, 'item_a'),
... ({'item2', 'item3'}, 'item_b')
... ]
>>> l2 = [{b, *a} for a, b in l]
>>> l2
[{'item2', 'item_a', 'item1'}, {'item2', 'item_b', 'item1'}, {'item2', 'item_a', 'item3'}, {'item2', 'item_b', 'item3'}]
(嵌套集是无序的)
列表推导使用了两次序列解包:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.