for循环中的字典不会转移到外部循环 - Python

Ema*_*936 3 python dictionary loops for-loop python-3.x

我试图从参考.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'}
Run Code Online (Sandbox Code Playgroud)

但是当我将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'}
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题,以便将它编译成一个集体的,可用的字典?

Net*_*ave 6

在您的代码newData中指向每个循环迭代中的新字典,只需在外部创建一个字典并更新它:

newData = {}
for line in contents:
    data = line.split(",")
    i = iter(data)
    newData.update(dict(zip(i, i)))

print(newData)
Run Code Online (Sandbox Code Playgroud)