擅长:python、mysql、java
<pre><code>import csv
from itertools import izip, tee
INPUT = "some.csv"
OUTPUT = "filtered.csv"
implicit_groups = dict()
explicit_groups = set()
with open(INPUT, "rb") as inf:
lines, to_rows = tee(inf)
rows = csv.reader(to_rows)
for line, row in izip(lines, rows):
group, _, state, _ = row
if state == "Explicit":
implicit_groups.pop(group, None)
explicit_groups.add(group)
elif state == "Implicit":
if group not in explicit_groups:
implicit_groups[group] = line
with open(OUTPUT, "wb") as outf:
# edit! writing lines, not rows:
outf.write("\n".join(implicit_groups.itervalues()))
</code></pre>