为什么我的python函数只用文件中的一行填充字典?

时间:2016-07-18 23:14:56

标签: python function dictionary

我有一个包含11行的文件。我正在编写一个函数,它将跳过包含“XYZ”的行,并返回文件中其余行的第一列和第二列。当我运行模块时,它会跳过“XYZ”行,但只返回剩下的第一行。

Comment

奇怪的是,当我在解释器中测试def popdict(my_file): for line in my_file: if "XYZ" in line: pass else: x = line.split() a = x[1] b = x[0] d[a] = b return d 循环时(即,我不将其作为模块导入),它会产生正确的行。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

第一次找到没有“XYZ”的线时,从外部函数返回。如果您想等到文件结束,请从循环中删除 return 语句:

def read_to_dict():
    for line in my_file:
        if "XYZ" not in line:
            x = line.split()
            a = x[1]
            b = x[0]
            d[a] = b

    return d

答案 1 :(得分:0)

在完成文件循环之后你应该return

def popdict(my_file):
    for line in my_file:
        if "XYZ" in line:
            pass
        else:
            x = line.split()
            a = x[1]
            b = x[0]
            d[a] = b
    return d