我有一個字典,如下所示:
dict_1 = {'a': {0: 'name_1', 1: 'name_2'}, 'b': {0: 23, 1: 53}}
我希望它采用所需的格式:
result = [{'a': 'name_1', 'b': 23}, {'a': 'name_2', 'b': 53}]
但是,我使用以下代碼以以下格式得到它:
l=[]
c={}
for k, v in d.items():
for i in v:
j=str(i)
j=j.replace(j, k)
c[j]=v[i]
print(c)
l.append(c)
結果不是所需的結構
[{'a': 'name_2', 'b': 53}, {'a': 'name_2', 'b': 53}]
uj5u.com熱心網友回復:
不確定這將如何概括,但您可以嘗試:
result = [dict(zip(dict_1, d2)) for d2 in
zip(*(d.values() for d in dict_1.values()))]
輸出:[{'a': 'name_1', 'b': 23}, {'a': 'name_2', 'b': 53}]
uj5u.com熱心網友回復:
看起來 dict_1 中最里面的鍵對應于結果串列中的位置。
因此,您可以使用串列推導來構建新的字典串列。將n設定為內部字典的大小。
>>> pivots = list(dict_1) # The keys 'a' and 'b'
>>> n = 2
>>> [{k: dict_1[k][i] for k in pivots} for i in range(n)]
>>> [{'a': 'name_1', 'b': 23}, {'a': 'name_2', 'b': 53}]
uj5u.com熱心網友回復:
如果嵌套字典中的鍵相同,則應該可以
dict_1 = {'a': {0: 'name_1', 1: 'name_2'}, 'b': {0: 23, 1: 53}}
# iterate over the keys in the nested dictionaries
# and map values in the inner dictionaries to the outer keys
[{i: d[k] for i, d in dict_1.items()} for k in list(dict_1['a'])]
# [{'a': 'name_1', 'b': 23}, {'a': 'name_2', 'b': 53}]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/487966.html
標籤:Python python-3.x 列表 字典 数据结构
