python - 从字典键和值中获取元组列表

标签 python loops dictionary

假设你有一个列表字典:

>>> a = {"a":[1, 3, 10, 2, 5], "b":[1, 0, 0, 1, 14]}
>>> a
{'a': [1, 3, 10, 2, 5], 'b': [1, 0, 0, 1, 14]}

从这个字典中,我想创建另一个列表,其中每个元素都是一个(key,id)元组,如下所示:

>>> pairs = []
>>> for k,v in a.items():
...   for id in v:
...     pairs += [(k,id)]
... 
>>> print(pairs)
[('a', 1), ('a', 3), ('a', 10), ('a', 2), ('a', 5), ('b', 1), ('b', 0), ('b', 0), ('b', 1), ('b', 14)]

有没有捷径可以做到这一点?之前创建对的代码过于冗长。

最佳答案

您可以使用双重列表理解,这样 然而为了易读性:

pairs = [(k, val) for k, l in a.items() for val in l]

关于python - 从字典键和值中获取元组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34207062/

相关文章:

java - for 循环(Java)

python - 如何在 Azure ML 中使用 TensorFlow Hub

python - Django多模板渲染

python - python2中的dict_proxy和python3中的mappingproxy有什么区别?

java - 如何在Android上在特定条件下停止循环并将数据插入数组

python - while block 没有按预期循环

Python:要比较两个列表以进行格式匹配并制作成字典

Java将字符串与int数组关联起来

python - 如何将嵌套的字典键和值平坦化为其类型和变量的平坦列表?

python - Python 中的@property 速度开销