我的代码存在问题,我读了一个文本文件,将信息放在列表中的文件中,然后将列表转换为字典。
问题在于,当我尝试打印其中包含的项目(无论是整个字典还是键或值)时,它只打印一个键/值对。
实际上,字典只包含该特定的键/值对,仅此而已。
这是我的代码:
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')
该文本文件包含苏格兰出生婴儿的所有姓名及其性别的列表。
答案 0 :(得分:3)
您在循环的每次迭代中重新定义整个字典。
b_dict = {k: v for k, v in (b_list for word in b_list)}
将b_dict
重新分配到新词典。
你应该查看字典类型的update
函数,哪种类型合并两个字典。