[英]Combining 3 lists to create a list of dictionaries
我正在嘗試找出獲取以下 3 個列表的最佳方法:
name_list = ["potatoes", "milk", "butter"]
quant_list = [500, 200, 40]
unit_list = ["g", "ml", "g"]
並將它們轉換為字典列表,格式如下:
target_list = [{"name": "potatoes", "quant_units": {"amount": 500, "unit": "g"}}, {"name": "milk", "quant_units": {"amount": 200, "unit": "ml"}}, {"name": "butter", "quant_units": {"amount": 40, "unit": "g"}}]
我真的很難弄清楚這樣做所需的方法和循環。
任何指針將不勝感激!
您可以使用zip
:
res = []
for (a, b, c) in zip(name_list, quant_list, unit_list):
res.append({'name': a, 'quant_units': {'amount':b, 'unit':c}})
print(res)
輸出:
[{'name': 'potatoes', 'quant_units': {'amount': 500, 'unit': 'g'}}, {'name': 'milk', 'quant_units': {'amount': 200, 'unit': 'ml'}}, {'name': 'butter', 'quant_units': {'amount': 40, 'unit': 'g'}}]
嘗試這個:
name_list = ["potatoes", "milk", "butter"]
quant_list = [500, 200, 40]
unit_list = ["g", "ml", "g"]
ans = []
for i,j,k in zip(name_list, quant_list, quant_list):
ans.append({'name':i,'quant':j,'unit':k})
print(ans)
輸出:
[{'name': 'potatoes', 'quant': 500, 'unit': 500}, {'name': 'milk', 'quant': 200, 'unit': 200}, {'name': 'butter', 'quant': 40, 'unit': 40}]
您還可以使用列表理解,這將使其成為單行符,並且通常是 python 中非常酷的概念
name_list = ["potatoes", "milk", "butter"]
quant_list = [500, 200, 40]
unit_list = ["g", "ml", "g"]
[{'name': f'{food}', 'quant_units': {'amount': amount, 'unit': unit}}
for food, amount, unit in zip(name_list, quant_list, unit_list)]
輸出:
[{'name': 'potatoes', 'quant_units': {'amount': 500, 'unit': 'g'}},
{'name': 'milk', 'quant_units': {'amount': 200, 'unit': 'ml'}},
{'name': 'butter', 'quant_units': {'amount': 40, 'unit': 'g'}}]
你可以使用這個:
name_list = ["potatoes", "milk", "butter"]
quant_list = [500, 200, 40]
unit_list = ["g", "ml", "g"]
lst = []
for n, q, u in zip(name_list, quant_list, unit_list):
lst.append({'name': n, 'quant_units': {'amount': q, 'unit': u}})
print(lst)
輸出:
[{'name': 'potatoes', 'quant_units': {'amount': 500, 'unit': 'g'}}, {'name': 'milk', 'quant_units': {'amount': 200, 'unit': 'ml'}}, {'name': 'butter', 'quant_units': {'amount': 40, 'unit': 'g'}}]
如果您有相同數量的列表項,您也可以將其用作替代解決方案:
list_dict = []
for i in range(len(name_list)):
list_dict.append({'name':name_list[i], 'qaunt_list':{'amount':quant_list[i], 'unit':unit_list[i]}})
輸出:
[{'name': 'potatoes', 'qaunt_list': {'amount': 500, 'unit': 'g'}},
{'name': 'milk', 'qaunt_list': {'amount': 200, 'unit': 'ml'}},
{'name': 'butter', 'qaunt_list': {'amount': 40, 'unit': 'g'}}]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.