python中如何删除列表中重复的元素
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python中如何删除列表中重复的元素相关的知识,希望对你有一定的参考价值。
参考技术A举个例子,比如有这样一个列表l,可表示为[1,2,2,5,3,6],它可以通过下面的操作达到去重的目的:l=list(set(l)),在python shell中代码执行如下图所示:
python如何删除list里重复的元素
要求是把列表里的重复元素删除,只保留没有重复的元素。
例如:
a=['a','b','c','d','a','a']
如何变成:
a=['b','c','d']
这个可简单可复杂。
简单的:利用集合
a = list(set(a)) #这样就可以了,是不是很简单复杂的:
就是先对列表排序,然后比较相邻元素是否相同,相同的则删除后面的。大体算法思路,代码自己写吧
当然还有其他的算法...
-----------------------------------------------------------------------------------
额, 不好意思,看错了
def Q(a):aa=[]
for i in a:
if a.count(i)==1:
aa.append(i)
return aa
这个就可以了,利用 list.count(obj) 计算obj在list中出现的次数进行判断
这串代码的结果是否是把a从新的列表中删除了???是的话,就太感谢了
追答我真无语,你看不懂代码吗?真看不懂的话,运行一下就是了。费劲...
def Q(a):aa=[]
for i in a:
if a.count(i)==1:
aa.append(i)
return aa
a=['a','b','c','d','a','a']
aa = Q(a)
print a
print aa
# 输出
# ['a', 'b', 'c', 'd', 'a', 'a']
# ['b', 'c', 'd'] 参考技术A
使用列表推导,只保留元素个数等于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 参考技术B
代码如下:
oldList = ['a','b','c','d','a','a']newList = []
for letter in oldList:
if letter not in newList:
newList.append(letter)
print newList
运行结果:
['a', 'b', 'c', 'd'] 参考技术C a=["a","b","c","c","d"]
print("删除前的list:\n",a)
b=
b=b.fromkeys(a)
a=list(b.keys())
print("删除后的list:\n",a) 参考技术D 来来来,看我的
for i in a[:]:
if i=='a':
a.remove(i)
是不是很简单?不过有大神能再解释下深层原因,让我们知其所以然就更好了
以上是关于python中如何删除列表中重复的元素的主要内容,如果未能解决你的问题,请参考以下文章