首页 > 解决方案 > 为什么他们在编写 csv 时使用集合?)困惑我

问题描述

遇到了这个主题使用 Python 将结果保存到 csv 文件

我所需要的 - 将 csv 更改写入文件。但。这段代码偷了我的一些行))不合理的数量(而不是代码中的五个)

你能解释一下为什么他们在这个简单的动作中使用集合吗?为什么在这里使用计数器?

Use csv.writer:

import csv

with open('thefile.csv', 'rb') as f:
  data = list(csv.reader(f))

import collections
counter = collections.defaultdict(int)
for row in data:
    counter[row[0]] += 1


writer = csv.writer(open("/path/to/my/csv/file", 'w'))
for row in data:
    if counter[row[0]] >= 4:
        writer.writerow(row)

标签: pythoncsv

解决方案


这一行

counter = collections.defaultdict(int)

创建一个defaultdict值是整数的,默认值是零。然后这个位

for row in data:
    counter[row[0]] += 1

扫描输入,并计算第一个字段中的值在文件中出现的次数。最后,代码仅输出第一个值至少出现 4 次的那些行。通过使用,这一切都可以缩短一点collections.Counter,但我不知道十年前是否在标准库中。


推荐阅读