在理解列表中分解一个图板



我有一个词典,其中键为元组。我正在寻找一个理解列表来分解列表中的元素

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

是否有一种很好而优雅的方法可以在一行中实现这一目标?

谢谢

您使用单个理解:

使用 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]

您可以获取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 Keys(

>>> 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] 

您可以使用RELAD功能组合列表:

dicto = {(1,2):1, (3,4):1, (5,6):3}
your_list = list(reduce(lambda a, b: a + b, dicto.keys()))

最新更新