我正在尝试根据参考.txt文件中的值制作字典,但是当我制作字典并打印它时,在for循环中我得到了所需的结果:
ref = open("reference.txt", "r")
contents = ref.read().splitlines()
for line in contents:
data = line.split(",")
i = iter(data)
newData = dict(zip(i, i))
print(newData)
Output:
{"Bob's Diner": '001100111'}
{"Jim's Grill": '001100111'}
{"Tommy's Burger Shack": '01011101'}
但是当我将print语句放在for循环之外时,我得到了不同的结果:
ref = open("reference.txt", "r")
contents = ref.read().splitlines()
for line in contents:
data = line.split(",")
i = iter(data)
newData = dict(zip(i, i))
print(newData)
Output:
{"Tommy's Burger Shack": '01011101'}
如何解决此问题,以便将其编译为一个可用的集体词典?
答案 0 :(得分:6)
您的代码newData
在每次循环迭代中都指向一个新字典,只需在外部创建一个字典并对其进行更新:
newData = {}
for line in contents:
data = line.split(",")
i = iter(data)
newData.update(dict(zip(i, i)))
print(newData)
答案 1 :(得分:0)
之所以发生这种情况,是因为您在循环的每次迭代中都在制作新的字典。在循环外部定义dict将解决问题。
答案 2 :(得分:0)
只需尝试在循环开始之前创建一个字典,这样就可以将数据存储在那里并从中取出打印语句。
ref = open("reference.txt", "r")
contents = ref.read().splitlines()
newData = {}
for line in contents:
data = line.split(",")
i = iter(data)
newData = dict(zip(i, i))
print(newData)