[英]How to nest dictionary and list to a dictionary through a loop?
我在理解如何自動嵌套字典時遇到問題。 在腳本中,我需要一個包含包含列表的字典的字典。 像這樣:
week{
1:{
m: [],
l: [],
d: []
},
2:{
m: [],
l: [],
d: []
},
# ...
}
我試過的:
commands = ["m", "ml", "l", "ld", "d"] # want to use them as keys
week = {}
for d in range(7):
d += 1
week[d] = {}
for t in commands:
day = {}
day[t] = []
week[d] = day
print(week)
# Output:
{1: {'d': []}, 2: {'d': []}, 3: {'d': []}, 4: {'d': []}, 5: {'d': []}, 6: {'d': []}, 7: {'d': []}}
您正在for t in commands
循環中的for t in commands
創建day
字典。 嘗試這樣做:
week[d] = {} # Let this line to be 1
day = {}
for t in commands:
day[t] = []
week[d] = day # If you wrote this line, you don`t need line 1 anymore
問題在這里:
for t in commands:
day = {}
day[t] = []
week[d] = day
在這里,您正在為command
每個鍵創建一個新的子詞典。 您應該只為week
每個鍵創建一個字典,這就是您之前所做的:
week[d] = {}
在內部 for 循環中,您需要做的就是添加到字典week[d]
:
for t in commands:
week[d][t] = []
import json
commands = ["m", "ml", "l", "ld", "d"]
weeks = {}
for d in range(1,8):
weeks[d] = {com:[] for com in commands}
print(json.dumps(weeks,indent=4))
{
"1": {
"m": [],
"ml": [],
"l": [],
"ld": [],
"d": []
},
"2": {
"m": [],
"ml": [],
"l": [],
"ld": [],
"d": []
},
"3": {
"m": [],
"ml": [],
"l": [],
"ld": [],
"d": []
},
"4": {
"m": [],
"ml": [],
"l": [],
"ld": [],
"d": []
},
"5": {
"m": [],
"ml": [],
"l": [],
"ld": [],
"d": []
},
"6": {
"m": [],
"ml": [],
"l": [],
"ld": [],
"d": []
},
"7": {
"m": [],
"ml": [],
"l": [],
"ld": [],
"d": []
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.