1

我有一个看起来像这样的 bitarray 文件:

10000000000000000000000000000000000000000000000000000000000000000000001000000

我需要根据它们在位数组中的位置来计算位的总和:(第二位,第二位 + 7,第二位 + 14)。我尝试了下面的代码,但它只计算了第一个打印值的总和。你能指导我解决这个问题吗?

    lines = [line.strip() for line in open('test.txt')]
    bitp = range(1,len(lines[0]),7)
    for i in lines:
        for p in bitp:
            bitsum = sum(int(a) for a in i[p])
4

1 回答 1

1

我想你想每行存储一个总和?在这种情况下,您需要一个列表:

bitsums = list()
with open('test.txt') as fobj:
    for line in fobj:
        bitsums.append(sum(int(c) for c in line.strip()[1::7]))
于 2012-05-25T13:32:25.940 回答