Python使用集合实现内容去重

有这么一个场景,某个文件用于记录人名(也可以是URL或者其他的),编辑发现,出现了重复的内容。那么我们如何使用Python来进行去重呢?

如果换做刚学习编程的我,我一定会把所有内容加载到内存,再挨个的进行比对,如果有重复的则删除;那种方法耗时(取决于具体算法),还low。现在可以有一种更好的方法可以实现快速的去重。

Python 集合(set)

集合(set)是一个无序的不重复元素序列。

Python 中使用大括号{}或者set()函数来创建集合。

创建一个空集必须使用set()而不是{},因为{}是用来创建一个空字典。

没有键的{}就是一个集合(set),会自动删除重复的值。

回到本文开头的问题,再利用Python集合的特性;只需要将文件内容读入到表中,然后使用set()函数生成一个集合,再将集合中的内容写回到文件中即可。

实现代码:

import time

while True:
    
    file_name=input('请输入文件路径或文件名:')
    
    try:
        with open(file_name) as fp:
            domain_lst = fp.readlines()
    except:
        print('错误的文件路径!!!')
        continue
    
    start=time.time()
    
    print('总数:',len(domain_lst))
    
    new_lst=list(set(domain_lst))
    
    print('去重后:',len(new_lst))
    print(time.time()-start,'秒')
    
    with open(file_name,'w') as fp:
        fp.write(''.join(new_lst))
        
    print('文件保存到:',file_name)

上面的代码实现了内容去重,并记录了去重前后的数量,以及所花时间;

原创内容,如需转载,请注明出处;

本文地址: https://www.perfcode.com/p/1120.html

分类: 计算机技术
推荐阅读:
Linux从视频文件里提取音频 通常来说,从一个视频文件里提取出其音频可能需要你学习使用某些音视频处理软件;而在Linux下,你只需要一条命令即可实现将将音频从视频文件中提取出来:
Python breakpoint()函数详细教程 brekpoint()函数是python3.7版本新增的一个内置函数;该函数会在调用时使程序进入调试器中;
近期WordPress更新失败以及官网无法打开原因 在WordPress后台进行更新,尝试多次均发生了 429 Too Many Requests 错误。起初以为是当前WordPress更新用户较多导致的,随后几天发现大多数用户还是无法更新,且错误都为429,且WordPress的官网也无法打开,返回429错误。
Matlab中如何表示无穷大 在MATLAB中,您可以使用关键字inf(不区分大小写)来表示正无穷大,-inf表示负无穷大。
网站搜索功能被恶意利用的解决方法 不良分子通过网站搜索框不断搜索敏感关键词,产生大批网页标题带有敏感关键词的搜索结果页,且这些页面可能会被搜索引擎收录;他们的目的是让这些敏感关键词在搜索结果中大量曝光,从而达到他们宣传的目的;
一条Linux命令让你看起来很忙还很酷 在Linux系统下,如果你想让你的终端看起来很忙,或者想在某人面前装酷,那么你一定需要这条命令来实现: