Python对list列表进行去重的几种方法
目录
- 一、使用集合(set)转换再转回列表
- 二、使用www.devze.com字典的键去重并保留顺序 (推荐)
- 三、使用循环和临时列表
- 四、使用OrderedDict(python 3.6 之前字典不保证顺序,较早版本的 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)
五、实战案例
假设有这么一个列表 ['厦门中山路', '厦门医学院', '厦门鼓浪android屿', '厦门软件园']
希望找出列表中的中文分词,并输出无重复分词。
输出:
['厦门', '中山路', '医学院', '鼓浪屿', '软件园']
import jieba words = ['厦门中山路', python'厦门医学院', '厦门鼓浪屿', '厦门软件园'] unique_list = [] for word in words: # 分词 unique_list = unique_lijsst +list( jieba.cut(word) ) # 去重 unique_list = list( {}.fromkeys(unique_list).keys() ) print( unique_list )
输出:
到此这篇关于Python对list列表进行去重的几种方法的文章就介绍到这了,更多相关Python list列表去重内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!
精彩评论