前言
测试攻城狮一枚,代码能力一般,刷题遇到列表去重,要求不能新增个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']
网友评论