我有一个词典,其中键为元组。我正在寻找一个理解列表来分解列表中的元素
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()))