python - 退出for循环并在文件末尾返回

标签 python for-loop

我想遍历一个文件并返回每一行:

for i in master_file:
        columns = re.split('\s{2,}', i)
        last_name = columns[1]
        print(last_name)

如果我用 return 替换 print 它只会返回第一行的 columns[1] ,但我想返回它所有的线。所以我可以在我的函数的其他地方使用该信息。

最佳答案

在这种情况下,您需要yield 值而不是return:

for i in master_file:
        columns = re.split('\s{2,}', i)
        last_name = columns[1]
        yield last_name

完整示例:

def readLastNames ():
    for i in master_file:
            columns = re.split('\s{2,}', i)
            last_name = columns[1]
            yield last_name

for last_name in readLastNames ():
    print (last_name)

非常粗略的解释:yield 将参数和控制 传递回调用上下文,保留被调用上下文的状态,然后从那里恢复。

关于python - 退出for循环并在文件末尾返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22887591/

相关文章:

python - 如何使用 python 将列表中的信息填充到多个 JSON 对象中?

python - 如何在 scipy.integrate.simps 或 numpy.trapz 之间做出选择?

python - SCons:单个 SConscript 文件中的不同 variant_dir

r - 如何使用 R 中的 for 循环将列保存到单独的文件中

python - 是否有一些预训练的 LSTM、RNN 或 ANN 模型用于时间序列预测?

python - 添加不同大小的 pandas DataFrame 的值

python - 如何在列表内部的 python 中运行嵌套循环,以便外循环始终从列表的下一个元素开始,依此类推

java - 在什么情况下将命令放在 Java for 循环更新语句中会有用?

javascript - 将类按顺序添加到一系列元素

c - 我需要帮助理解这段 C 代码