如何在python中从列中排序重复条目

2024-10-03 06:22:21 发布

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

我有这样一个文件:

q12j4
q12j4
fj45j
q12j4
fjmep
fj45j

现在我想做的就是:

  • 如果有重复的条目
  • 如果是这样,则只打印一次条目,这些条目不会重复正常打印。
    输出应如下所示:

    q12j4  
    fj45j  
    fjmep  
    

    [省略重复]

我试着用defaultdict函数来实现它,但我认为它对字符串不起作用。
请帮忙。。你知道吗


Tags: 文件函数字符串条目省略defaultdictfjmepfj45j
3条回答
seen = set()
with open(filename, 'r') as f:
    for line in f:
        if line not in seen:
            print line
            seen.add(line)

这应该足够了:

with open('file.txt', 'r') as f:
    for line in set(f):
        print line
def unique(seq):
    seen = set()
    for val in seq:
        if val not in seen:
            seen.add(val)
            yield val

with open('file.txt') as f:
    print ''.join(unique(f))

如您所见,我选择编写一个单独的生成器,用于从iterable中删除重复项。这个生成器unique(),也可以在许多其他上下文中使用。你知道吗

相关问题 更多 >