python如何删除list里重复的元素?
一共使用四种方法来去除列表中的重复元素,下面是具体实现:
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)
使用列表推导,只保留元素个数等于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的喜剧团体的爱好者。