我有一個看起來像這樣的字典串列:
test_dict = [{'id': 0, 'name': ['Jim'], 'lastname': ['kkk']}, {'id': 1, 'name': ['John'], 'lastname': ['lll']}]
test_dict
[{'id': 0, 'name': ['Jim'], 'lastname': ['kkk']},
{'id': 1, 'name': ['John'], 'lastname': ['lll']}]
我想創建另一個以 . 的ids為鍵的字典test_dict。
我正在尋找的輸出如下所示:
test_dict_f = {'0': {'name': ['Jim'], 'lastname': ['kkk']},
'1': {'name': ['John'], 'lastname': ['lll']}}
test_dict_f
{'0': {'name': ['Jim'], 'lastname': ['kkk']},
'1': {'name': ['John'], 'lastname': ['lll']}}
有什么想法我能做到這一點嗎?
uj5u.com熱心網友回復:
在一行中嘗試:
result = {str(i["id"]): {"name": i["name"], "lastname": i["lastname"]} for i in test_dict}
結果將是:
{'0': {'name': ['Jim'], 'lastname': ['kkk']},
'1': {'name': ['John'], 'lastname': ['lll']}}
uj5u.com熱心網友回復:
這是另一種不依賴于“id”以外的任何鍵的知識的方法。請注意,這是破壞性的:
test_dict = [{'id': 0, 'name': ['Jim'], 'lastname': ['kkk']}, {'id': 1, 'name': ['John'], 'lastname': ['lll']}]
test_dict_f = {}
for d in test_dict:
id_ = d.pop('id')
test_dict_f[str(id_)] = d
print(test_dict_f)
輸出:
{'0': {'name': ['Jim'], 'lastname': ['kkk']}, '1': {'name': ['John'], 'lastname': ['lll']}}
uj5u.com熱心網友回復:
test_dict = [{'id': 0, 'name': ['Jim'], 'lastname': ['kkk']}, {'id': 1, 'name': ['John'], 'lastname': ['lll']}]
pp({i["id"]: {k:v for k,v in i.items() if k!="id"} for i in test_dict})
or event much funnier:
pp({i["id"]: i|{"id":i["id"]} for i in test_dict})
{0: {'name': ['Jim'], 'lastname': ['kkk']},
1: {'name': ['John'], 'lastname': ['lll']}}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/476891.html
上一篇:如何使用dict鍵更改陣列值?
下一篇:將檔案中的字典存盤在嵌套字典中
