我在一个文件中有以下数据:
Sarah,10
John,5
Sarah,7
Sarah,8
John,4
Sarah,2
我想为每个人保留最后三排。输出将是:
^{pr2}$在本例中,Sarah的第一行被删除,因为后面的三行被删除。输出中的行也与输入中的行保持相同的顺序。我该怎么做?在
附加信息 你们太棒了-非常感谢。最后的代码似乎已经从这篇文章中删除了-
import collections
with open("Class2.txt", mode="r",encoding="utf-8") as fp:
count = collections.defaultdict(int)
rev = reversed(fp.readlines())
rev_out = []
for line in rev:
name, value = line.split(',')
if count[name] >= 3:
continue
count[name] += 1
rev_out.append((name, value))
out = list(reversed(rev_out))
print (out)
因为这看起来像csv数据,所以使用
csv
模块来读写它。在读取每一行时,存储按第一列分组的行。将行号与行一起存储,以便可以按照与输入相同的顺序写出行号。使用绑定deque只保留每个名称的最后三行。最后,对行进行排序并写出它们。在相关问题 更多 >
编程相关推荐