python如何删除list里重复的元素?

 我来答
x莉莉安
2018-04-01 · TA获得超过8233个赞
知道小有建树答主
回答量:1366
采纳率:100%
帮助的人:67.7万
展开全部

一共使用四种方法来去除列表中的重复元素,下面是具体实现:

def f1(seq):   

# not order preserving   

set = {}   

map(set.__setitem__, seq, [])   

return set.keys()  

def f2(seq):   

# order preserving   

checked = []   

for e in seq:   

if e not in checked:   

checked.append(e)   

return checked  

def f3(seq):   

# Not order preserving   

keys = {}   

for e in seq:   

keys[e] = 1   

return keys.keys()  

def f4(seq):   

# order preserving   

noDupes = []   

[noDupes.append(i) for i in seq if not noDupes.count(i)]   

return noDupes  

def f5(seq, idfun=None):   

# order preserving   

if idfun is None:   

def idfun(x): return x   

seen = {}   

result = []   

for item in seq:   

marker = idfun(item)   

# in old Python versions:   

# if seen.has_key(marker)   

# but in new ones:   

if marker in seen: continue   

seen[marker] = 1   

result.append(item)   

return result  

def f6(seq):   

# Not order preserving       

set = Set(seq)   

return list(set)  

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
看清就看轻
推荐于2019-08-14 · TA获得超过2826个赞
知道小有建树答主
回答量:11
采纳率:0%
帮助的人:3323
展开全部

使用列表推导,只保留元素个数等于1的a = ['a', 'b', 'c', 'd', 'a', 'a']                            b = [x for x in a if a.count(x) == 1]        print b

列表推导中的x for x in a if a.count(1) == 1和下面的for循环等价,不过更简洁:

b = []
for x in a:
if a.count(x) == 1:
b.append(x)
print b

sort排序,默认按照ASCII码从小到大排序。

加了参数key后:相当于遍历l2,每次遍历的值传入key所对应的函数,

按每次遍历的return值进行排序,

Python, 是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。Python具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块很轻松地联结在一起。

Python的创始人为Guido van Rossum。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,作为ABC 语言的一种继承。之所以选中Python作为该编程语言的名字,是因为他是一个叫Monty Python的喜剧团体的爱好者。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式