当前位置: 代码网 > it编程>前端脚本>Python > Python对list列表进行去重的几种方法

Python对list列表进行去重的几种方法

2024年10月25日 Python 我要评论
在 python 中,可以使用以下几种方法对列表进行去重:一、使用集合(set)转换再转回列表这种方法简单快捷,但会改变列表中元素的顺序,因为集合是无序的。如果按列表原来的顺序,输出应该是 [5, 4

在 python 中,可以使用以下几种方法对列表进行去重:

一、使用集合(set)转换再转回列表

这种方法简单快捷,但会改变列表中元素的顺序,因为集合是无序的。

如果按列表原来的顺序,输出应该是 [5, 4, 3, 2, 1],结果是 [1, 2, 3, 4, 5]

my_list = [5, 4, 4, 3, 4, 3, 2, 1, 5]
unique_list = list( set(my_list) )
print(unique_list)

运行:

二、使用字典的键去重并保留顺序 (推荐)

my_list = [5, 4, 4, 3, 4, 3, 2, 1, 5]
unique_list = list( {}.fromkeys(my_list).keys() )
print(unique_list)

运行:

三、使用循环和临时列表

空间占用多

my_list = [5, 4, 4, 3, 4, 3, 2, 1, 5]
unique_list = []
for item in my_list:
    if item not in unique_list:
        unique_list.append( item )
print(unique_list)

四、使用ordereddict(python 3.6 之前字典不保证顺序,较早版本的 python 使用这种方法)

from collections import ordereddict
 
my_list = [5, 4, 4, 3, 4, 3, 2, 1, 5]
unique_list = list( ordereddict.fromkeys(my_list) )
print(unique_list)

五、实战案例

假设有这么一个列表 ['厦门中山路', '厦门医学院', '厦门鼓浪屿', '厦门软件园']

希望找出列表中的中文分词,并输出无重复分词。

输出:

['厦门', '中山路', '医学院', '鼓浪屿', '软件园']

import jieba
 
words = ['厦门中山路', '厦门医学院', '厦门鼓浪屿', '厦门软件园']
unique_list = []
for word in words:
    # 分词
    unique_list = unique_list +list( jieba.cut(word) )
 
# 去重
unique_list = list( {}.fromkeys(unique_list).keys() )
print( unique_list )

输出:

到此这篇关于python对list列表进行去重的几种方法的文章就介绍到这了,更多相关python list列表去重内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com