Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用列表作为值遍历字典_Python - Fatal编程技术网

Python 如何使用列表作为值遍历字典

Python 如何使用列表作为值遍历字典,python,Python,假设我有以下词典: x = {'a': [1,2,3], 'b': [4,5,6], 'c':[5,6,7]} 我需要将其转换为三个字典,如下所示: {'a':1,'b':4,'c':5} {'a':2,'b':5,'c':6} {'a':3,'b':7,'c':7} 基本上是三个字典,它们具有相同的键和值,对应于每个值中的相同索引 我可以迭代地执行此操作,但我想知道是否有一种简洁高效的方法可以在不使用嵌套for循环的情况下执行此操作。假设您知道一个键(例如a),并且您知道列表的长度都相同

假设我有以下词典:

x = {'a': [1,2,3], 'b': [4,5,6], 'c':[5,6,7]}
我需要将其转换为三个字典,如下所示:

{'a':1,'b':4,'c':5}
{'a':2,'b':5,'c':6}
{'a':3,'b':7,'c':7}
基本上是三个字典,它们具有相同的键和值,对应于每个值中的相同索引

我可以迭代地执行此操作,但我想知道是否有一种简洁高效的方法可以在不使用嵌套for循环的情况下执行此操作。

假设您知道一个键(例如
a
),并且您知道列表的长度都相同

[ dict((k,v[i]) for k,v in x.items()) for i in range(len(x['a'])) ]

您可以为每个字典创建一个值列表,然后迭代以获得字典列表:

x = {'a': [1,2,3], 'b': [4,5,6], 'c':[5,6,7]}

myValues = list(zip(*x.values()))

myList = [dict(zip(x.keys(), item)) for item in myValues]

print(myList)

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

您对SO很有经验,并且知道它是如何工作的。请张贴您的尝试。我们不是一个代码编写服务。这取决于你在找什么,你在找字典列表吗?