Python词典没有返回所有它的项目

时间:2015-10-23 13:06:55

标签: python dictionary

我的代码存在问题,我读了一个文本文件,将信息放在列表中的文件中,然后将列表转换为字典。

问题在于,当我尝试打印其中包含的项目(无论是整个字典还是键或值)时,它只打印一个键/值对。

实际上,字典只包含该特定的键/值对,仅此而已。

这是我的代码:

class Babies:
    b_list = []
    b_dict = {}

    def __init__(self, scotbabies=None):  # placeholder
        self.scotbabies = scotbabies

    def read_names_from_file(self, file):
        global b_list
        global b_dict

        for line in open(file):
            b_list = line.split()
            b_dict = {k: v for k, v in (b_list for word in b_list)}
            print b_dict # if I print the dictionary at this point it will

            # print the entire dictionary. If I try to print it inside another
            # function or elsewhere, it will only print the first key/value pair.


babies = Babies()
babies.read_names_from_file('scotbabies2014.txt')

该文本文件包含苏格兰出生婴儿的所有姓名及其性别的列表。

1 个答案:

答案 0 :(得分:3)

您在循环的每次迭代中重新定义整个字典。

b_dict = {k: v for k, v in (b_list for word in b_list)}b_dict重新分配到新词典。

你应该查看字典类型的update函数,哪种类型合并两个字典。