簡體   English   中英

如何使用列表作為值遍歷字典

[英]How to iterate through dictionary with lists as values

假設我有以下字典:

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}]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM