我正在努力使用循环来更新列表字典。
weather_dict = \
{
"texas": [],
"colorado": = [],
"virginia": = [],
"illinois": = [],
"california": = []
}
arbitrary_weather = [10, 20, 30, 40, 50]
我的目标是拥有
arbitrary_weather
使用循环将其推入字典中的列表。相关图是顺序的arbitrary_weather[0] --> texas[]
,
arbitrary_weather[1] --> colorado[]
,等等。随着代码的每次迭代,任意天气都会改变,但是字典将继续以相同的顺序附加其列表。
我是python的新手,但是正在从事一个研究生项目,该项目将随着时间的推移积累大量数据。最终,将使用python panda分析字典中的数据列表。我从未使用过熊猫,因此,如果可能的话,学习构建数据分析中使用的词典的最佳实践将大有帮助。
谢谢!
答案 0 :(得分:4)
如果您可以确保字典中的键数始终等于列表的长度,则可以遍历字典并一次添加一个
weather_dict = {
"texas" : [],
"colorado" : [],
"virginia" : [],
"illinois" : [],
"california" : []
}
arbitrary_weather = [10, 20, 30, 40, 50]
i = 0
for k in weather_dict:
weather_dict[k].append(arbitrary_weather[i])
i += 1
print(weather_dict)
编辑:
请注意,不建议使用python 3.6及以下版本通过dict进行迭代,如果您使用python 3.6及以下版本,我建议使用Mad Physicist的答案,将密钥转换为列表,以便将其排序
答案 1 :(得分:3)
请记住,直到python 3.6才开始对字典进行排序。实际上,您仅将初始dict用作键名的存储库,因此我建议将其存储为键名的序列,而不是将其存储为空值的字典:
states = ['Texas', 'Colorado', 'Illinois', 'California']
您可以使用理解将初始测量结果转换为字典,然后将其添加到列表中:
weather_dict = {state: [value] for state, value in zip(states, arbitrary_weather)}
即使将原始词典保留为词典,也可以执行此操作,因为它可以在键上进行迭代。