在理解列表中分解一个tupple

时间:2018-02-27 03:32:41

标签: python dictionary tuples

我有一个字典,键是元组。我正在寻找一个理解列表来分解列表中的元组

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 :-(

是否有一种优雅而优雅的方式可以在一条线上实现这一目标?

由于

3 个答案:

答案 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()))