使用列表更新python字典

时间:2019-10-29 01:29:15

标签: python python-3.x dictionary

我正在努力使用循环来更新列表字典。

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分析字典中的数据列表。我从未使用过熊猫,因此,如果可能的话,学习构建数据分析中使用的词典的最佳实践将大有帮助。

谢谢!

2 个答案:

答案 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)}

即使将原始词典保留为词典,也可以执行此操作,因为它可以在键上进行迭代。