设置Python计数器占位符值

2024-03-29 08:21:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试用Python中的counter逐行读取csv文件。以下是csv文件中的3行:

02,17,25,32,42,49,04
06,20,23,29,35,53,57
13,14,18,19,21,36,53

我要做的是+=1,不是出现在1到60的列表中的数字。我事先设置了1-60的范围,将它们设置为零,打开一个文本文件,逐行读取:

import collections

c = collections.Counter(range(1,60))
c = collections.Counter({x:0 for x in c})

with open('lottoresults.txt') as f:
    for line in f:

接下来我要将每一行拆分为逗号分隔的值。对于与行的CS值匹配的每个计数器值,将Counter value设置为0,否则将计数器的值向上迭代1。你知道吗

for n in line.strip().split(","):
    while c['%d'] % n:
        c['%d'] = 0
    else:
        c['%d'] += 1

但我得到以下错误:

while c['%d'] % n:
TypeError: unsupported operand type(s) for %: 'int' and 'str'

有人能帮我解释一下我做错了什么吗?你知道吗

澄清:

我有一个数组中数字的初始计数: (1:0,2:0,3:0,4:0,5:0)

然后我跑一行,得到数字1,2。计数现在应显示: (1:0,2:0,3:1,4:1,5:1)

然后我跑一行,得到数字3,4。计数现在应显示: (1:1,2:1,3:0,4:0,5:2)

也就是说,所有没有出现的数字都加1,而那些被拉取的数字则重置为0。你知道吗


Tags: 文件csvinimport列表forlinecounter