你可以用
collections.defaultdict
并创建一个字典,其中包含文档中每个值的所有索引。如果有多个索引,则可以通过切片字典值并将其附加到新列表中,仅写入从第一个项之后开始的值。
from collections import defaultdict
with open('test.txt') as f:
content = (f.read()).split()
dd = defaultdict(list)
for i, v in enumerate(content):
dd[v].append(i)
res = []
for v in dd.values():
if len(v) == 1:
res.append(content[v[0]])
else:
for i in v[1:]:
res.append(content[i])
with open('out.txt', 'w') as f:
f.write('\n'.join(map(str,res)))
222
111
111
111