【发布时间】:2019-02-03 20:41:53
【问题描述】:
我正在为这个 for 循环而苦苦挣扎。我想用列表更新嵌套字典的值。以下工作,但我想使用 for 循环来压缩代码。 "status" 是一个嵌套字典,其外键 "A" 和 "B" 和 binary_list[] 都是 1。
Trucks = ["A", "B"]
Days= ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday",
"Saturday", "Sunday"]
requests={"A": {"Monday":0, "Tuesday":0, "Wednesday":0, "Thursday":0
"Friday":0, "Saturday":0, "Sunday":0},
"B": {"Monday":0, "Tuesday":0, "Wednesday":0, "Thursday":0,
"Friday":0, "Saturday":0, "Sunday":0}}
binary_list=[1,1,1,1,1,1,1,1,1,1,1,1,1,1]
status["A"]["Monday"]=binary_list[0]
status["A"]["Tuesday"]=binary_list[1]
status["A"]["Wednesday"]=binary_list[2]
status["A"]["Thursday"]=binary_list[3]
status["A"]["Friday"]=binary_list[4]
status["A"]["Saturday"]=binary_list[5]
status["A"]["Sunday"]=binary_list[6]
status["B"]["Monday"]=binary_list[7]
status["B"]["Tuesday"]=binary_list[8]
status["B"]["Wednesday"]=binary_list[9]
status["B"]["Thursday"]=binary_list[10]
status["B"]["Friday"]=binary_list[11]
status["B"]["Saturday"]=binary_list[12]
status["B"]["Sunday"]=binary_list[13]
我尝试了什么:
for truck in Trucks:
for day in Days:
requests[truck][day]=[j for j in binary_list]
这将在列表中生成 14 个 1 作为每天的值。我明白为什么会这样。这是因为有 2 个 for 循环,所以我想我需要一个嵌套的字典理解来将所有内容都放在一行中。我不确定这是否正确,但以我有限的知识,这似乎是正确的方向。我的问题是我该怎么做?有人可以帮忙吗?感谢你的宝贵时间。
【问题讨论】:
标签: python python-3.x for-loop nested dictionary-comprehension