python-列表去重的几种方法

前言

测试攻城狮一枚,代码能力一般,刷题遇到列表去重,要求不能新增个list,懵了,百思不得其解。故百度答案,这里记一下可以理解的几种方法。

一、内置set方法去重

set()方法可以将列表转化为集合(集合是一个无序的不重复元素序列)
PS:list()和set()都不改变原数据,返回一个新的对象

aList = ['Google', 'Runoob', 'Taobao', 'Facebook', 'Taobao']
print(list(set(aList)))
print(aList)
#输出
['Google', 'Facebook', 'Runoob', 'Taobao']
['Google', 'Runoob', 'Taobao', 'Facebook', 'Taobao']

二、常规方法

使用常规方法,需要新建一个list

aList = ['Google', 'Runoob', 'Taobao', 'Facebook', 'Taobao']
temp = []
for i in aList:
    if i not in temp:
        temp.append(i)
print(temp)
#output
['Google', 'Runoob', 'Taobao', 'Facebook']

三、列表推导式

aList = ['Google', 'Runoob', 'Taobao', 'Facebook', 'Taobao']
temp = []
[temp.append(i) for i in aList if i not in temp]
print(temp)
#output
['Google', 'Runoob', 'Taobao', 'Facebook']

四、sorted()方法

aList = ['Google', 'Runoob', 'Taobao', 'Facebook', 'Taobao']
new_list = sorted(set(aList))
print(new_list)
print(set(aList))
#output
['Facebook', 'Google', 'Runoob', 'Taobao']
{'Google', 'Facebook', 'Taobao', 'Runoob'}

这个方法和方法一类似,都是使用set()方法,不同的是使用sorted()方法将集合转化为列表并排序。

other

把重复的都去掉了

aList = ['Google', 'Runoob', 'Taobao', 'Facebook', 'Taobao']
print([item for item in aList if aList.count(item) == 1])
#output
['Google', 'Runoob', 'Facebook']
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容