我有一個包含相同鍵但不同值的字典串列。key 的值"A"存盤在一個名為 的變數animals_k中。鑒于此,我想知道是否有更簡潔的方式來表示以下內容:
animals_k = ['tiger', 'elephant', 'cow', 'goat']
animal_class = [{"A":"tiger", "B": 0, "C":20, "D":4},
{"A":"elephant", "B": 60, "C":8, "D":9},
{"A":"cow", "B": 0, "C":34, "D":12},
{"A":"goat", "B": 43, "C":43, "D":44}]
uj5u.com熱心網友回復:
{
"tiger": {
"B": 60,
"C": 0,
},
"dog": {
"B": 100,
"C": 12
}
}
uj5u.com熱心網友回復:
您可以創建一個字典,其中包含每個鍵的值串列。
{
"A": ["tiger", "elephant", ...],
"B": [0, 60, ...],
...
}
uj5u.com熱心網友回復:
您使用生成器運算式和串列推導式代碼創建串列:
animals_k = ['tiger', 'elephant', 'cow', 'goat']
animals_v = [(0, 20, 4), (60, 8, 9), (0, 34, 12), (43, 43, 44)]
temp = (dict(zip(('B','C','D'), values)) for values in animals_v)
animal_classes = [dict(**d1, **d2)
for d1, d2 in zip(({'A':animal} for animal in animals_k), temp)]
from pprint import pprint
pprint(animal_classes, sort_dicts=False)
結果:
[{'A': 'tiger', 'B': 0, 'C': 20, 'D': 4},
{'A': 'elephant', 'B': 60, 'C': 8, 'D': 9},
{'A': 'cow', 'B': 0, 'C': 34, 'D': 12},
{'A': 'goat', 'B': 43, 'C': 43, 'D': 44}]
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/412421.html
標籤:
