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

发布网友 发布时间:2022-04-22 03:15

我来回答

2个回答

热心网友 时间:2023-11-22 07:06

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

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)  

热心网友 时间:2023-11-22 07:07

使用列表推导,只保留元素个数等于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于19年发明,第一个公开发行版发行于1991年。Python具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块很轻松地联结在一起。

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

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com