For Loop一次添加5个数字

时间:2017-10-03 19:56:05

标签: python

我有一个包含ex:

数字列表的文件
1
2
3
4
5
6
7
8
9
10

我如何能够读取前五个数字,计算总和,然后读入接下来的五个数字?我可以使用for循环吗?我希望我的答案看起来像这样:

var1 = 15
var2 = 40

有比使用for循环更简单的方法吗?

3 个答案:

答案 0 :(得分:3)

你可以在文件句柄上使用next并转换为整数,在生成器理解中传递给sum,然后解压缩到2个变量,使用默认的0值以防万一文件在10个值之前结束(next(f,0)执行此操作)

with open("input.txt") as f:
   var1,var2 = (sum(int(next(f,0)) for _ in range(5)) for _ in range(2))

答案 1 :(得分:0)

请记住,python中的for循环在概念上等同于for each。在获得所需输入后,最好使用带有条件的while语句来停止读取。

答案 2 :(得分:0)

您可以使用itertools grouper配方,这在许多应用程序中都很有用!

import itertools

def grouper(iterable, n, fillvalue=None):
    "Collect data into fixed-length chunks or blocks"
    # grouper('ABCDEFG', 3, 'x') --> ABC DEF Gxx"
    args = [iter(iterable)] * n
    return itertools.zip_longest(*args, fillvalue=fillvalue)

sums = []

with open(filename) as f:
    groups = grouper(f)
    for group in groups:
        sum_ = sum(int(line) for line in group)
        sums.append(sum_)