该功能旨在将鸟名,键和权重用作值,从而将文件读入字典。它正在做我想要的,但是并没有遍历所有行,而且我不确定为什么!帮助一个女孩吗?
这是我的代码:
def bird_weights(filename):
bird_dict = {}
f = open(filename, "r")
for line in f:
new_line = line.split(":")
bird_type = new_line[0].capitalize()
bird_weight = new_line[1].strip().split(' ')
bw_list = [float(i) for i in bird_weight]
bird_dict[bird_type] = bw_list
if bird_type in bird_dict:
bird_dict[bird_type].extend(bw_list)
else:
bird_dict[bird_type] = bw_list
return bird_dict
.txt文件是:
bluebird:78.3 89.3 77.0
TANAGER: 111.9 107.65
BlueBird: 69.9
bluebirD: 91.9
tanager: 108.0 110.0
该代码旨在产生
{"Bluebird":[78.3, 89.3, 77.0, 69.9, 91.9],"Tanager": [111.9, 107.65, 108.0, 110.0]}
我得到的是:
{"Bluebird":[91.9, 91.9], "Tanager": [108.0, 110.0, 108.0, 110.0] }
我不确定为什么
最佳答案
这是因为python的字典不能有重复的键。您正在使用“大写”方法,该方法使某些鸟的名字相同。
关于python - 将文件读入字典python,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28337436/