我有這樣的串列和字典:
my_ls = [{"type": "A", "value": "100"}, {"type": "B", "value": "200"}, {"type": "C", "value": "300"}, {"type": "D", "value": "700"}]
my_dict =
{
"A":"A Name"
"B": "B Name",
"C": "C Name",
"D": "D Name"
}
現在我想要基于上面這兩個串列和字典的字典:
{"A Name": "Type A value from list i.e 100",
"B Name": "Type B value from list i.e 200",
"C Name": "Type C value from list i.e 300",
"D Name": "Type D value from list i.e 700"
}
如果 my_list 型別和 my_dict 鍵具有相同的名稱,則從串列中獲取此型別的值。
uj5u.com熱心網友回復:
只需遍歷 my_ls 并檢查 my_dict 的鍵中是否存在“type”,如果存在則添加到您的字典中。
ans = {}
for ls_val in my_ls:
if ls_val["type"] in my_dict.keys():
ans_key = my_dict[ls_val["type"]]
ans_val = ls_val["value"]
ans[ans_key] = ans_val
print(ans)
{'A Name': '100', 'B Name': '200', 'C Name': '300', 'D Name': '700'}
uj5u.com熱心網友回復:
嘗試使用生成
mapping = {item["type"]: item["value"] for item in my_ls}
res = {my_dict[k]: "Type {} value from list i.e {}".format(k, v) for k, v in mapping.items() if my_dict.get(k)}
print(res)
# {'A Name': 'Type A value from list i.e 100', 'B Name': 'Type B value from list i.e 200', 'C Name': 'Type C value from list i.e 300', 'D Name': 'Type D value from list i.e 700'}
uj5u.com熱心網友回復:
首先,您可以對 dict 進行預處理并創建一個字典,然后通過和my_ls的組合創建所需的輸出:my_dictpreprocessing dict
>>> tmp_dict = {ml["type"]: ml["value"] for ml in my_ls}
>>> {v_md: f"Type {k_md} value from list i.e {tmp_dict[k_md]}" for k_md, v_md in my_dict.items()}
{'A Name': 'Type A value from list i.e 100',
'B Name': 'Type B value from list i.e 200',
'C Name': 'Type C value from list i.e 300',
'D Name': 'Type D value from list i.e 700'}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/495555.html
上一篇:簡化為typescript的映射
