该功能旨在将鸟名,键和权重用作值,从而将文件读入字典。它正在做我想要的,但是并没有遍历所有行,而且我不确定为什么!帮助一个女孩吗?
这是我的代码:

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/

10-14 04:21