我有一个字典,键是元组。我正在寻找一个理解列表来分解列表中的元组
dicto={(1,2):1, (3,4):1, (5,6):3}
expected outcome: [1,2,3,4,5,6] (order doesnt matter)
我到目前为止最好的是:
[x for x, y in dicto.keys()] ### [x, y for x, y in dicto.keys()] doesnt work :-(
是否有一种优雅而优雅的方式可以在一条线上实现这一目标?
由于
答案 0 :(得分:5)
通过使用单一理解来展平dicto.keys()
:
dicto={(1,2):1, (3,4):1, (5,6):3}
final_result = [i for b in dicto.keys() for i in b]
输出:
[1, 2, 5, 6, 3, 4]
答案 1 :(得分:4)
您可以抓取dict
的所有密钥,将其展开为itertools.chain
以获得所需的结果
>>> import itertools
>>> dicto={(1,2):1, (3,4):1, (5,6):3}
>>> list(itertools.chain(*dicto.keys()))
>>> [1, 2, 5, 6, 3, 4]
或者您也可以使用itertools.chain.from_iterable
展平嵌套的元组列表(dict键)
>>> import itertools
>>> dicto={(1,2):1, (3,4):1, (5,6):3}
>>> list(itertools.chain.from_iterable(dicto.keys()))
>>> [1, 2, 5, 6, 3, 4]
答案 2 :(得分:1)
您可以使用reduce功能组合列表:
dicto = {(1,2):1, (3,4):1, (5,6):3}
your_list = list(reduce(lambda a, b: a + b, dicto.keys()))