python - 无法将循环限制为 21 行

标签 python python-2.7 loops

我正在尝试遍历一个列表。每行包含三个数字。该列表可以尽可能长,但我只想检查前 21 行。我试过使用 islice,但我似乎无法正确使用它。

from sys import argv
script, filename = argv

f = open(filename)

while True:
    line = f.readline()
    fields = line.split(" ")

    x = int(fields[0])
    y = int(fields[1])
    z = int(fields[2])

    for n in range(1, z):
        if n % x == 0 and n % y == 0:
            print "FB",
        elif n % x == 0:
            print "F",
        elif n % y == 0:
            print "B",
        else:
            print n,

    print line

    if not line:
        break

最佳答案

我不太清楚为什么你不能让 islice 工作。使用它的一个工作示例是:

import itertools

with open(filename, "r") as f:
    for line in itertools.islice(f, 21):
        fields = line.split(" ")
        # Rest of your code here...

这可能是最简单的解决方案,因为您无需在代码中引入额外的复杂性即可获得相同的结果。

关于python - 无法将循环限制为 21 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26233170/

相关文章:

python - 我怎样才能让我的船发射多发子弹?

python - 如何在 XGBoost 库的 plot_tree 函数中包含特征名称?

python - 如何避免在 python 中覆盖文件?

php - 遍历文本文件并检查文件是否存在于服务器上

python - 可变长度嵌套循环 Python

python - 获取 python 子进程花费了多少时间

python - MySQL 服务器已经消失 - 通过结帐事件处理程序的断开连接处理不起作用

python - numpy:将行中的重复值设置为 0

Python-我想使用 pandas 将第二行的列移动到第一行的列

python - 在 Python 中解包的多个 for 循环迭代器