python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python list列表去重

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

作者:matrixlzp

python 列表就是我们js中的数组了,我们下文整理几个常用的python 列表去重实现方法,非常的简单好用,通过代码示例讲解的非常详细,具有一定的参考价值,需要的朋友可以参考下

在 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列表去重内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文