我有这种字典:
{'a': [1, 2], 'b': [4, 5, 6]}
我想知道如何将它展开到像这样的元组列表中:
[('a', 1), ('a', 2), ('b', 4), ('b', 5), ('b', 6)]
在Python 3中实现这一目标的最佳方法是什么?
答案 0 :(得分:3)
只需使用列表理解:
Worksheets("youeSheetName")
使用您的示例输入,会生成:
[(k,vi) for k,v in d.items() for vi in v]
请注意,在大多数Python版本(不是最近的版本)中,字典是无序的。因此,键的顺序在输出中可能不同(而不是值 per 键)。所以>>> d = {'a': [1, 2], 'b': [4, 5, 6]}
>>> [(k,vi) for k,v in d.items() for vi in v]
[('a', 1), ('a', 2), ('b', 4), ('b', 5), ('b', 6)]
也是可能的结果。你无法解决这个问题(展开),因为从你构造这样一个字典的那一刻起,订单就会丢失。