如何将带有列表值的python字典展开为具有两个元素的键值元组列表?

时间:2017-04-06 10:19:23

标签: python dictionary tuples

我有这种字典:

{'a': [1, 2], 'b': [4, 5, 6]}

我想知道如何将它展开到像这样的元组列表中:

[('a', 1), ('a', 2), ('b', 4), ('b', 5), ('b', 6)]

在Python 3中实现这一目标的最佳方法是什么?

1 个答案:

答案 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)] 也是可能的结果。你无法解决这个问题(展开),因为从你构造这样一个字典的那一刻起,订单就会丢失。

相关问题