① python删除list重复元素
在Python中主要有5种方式 。
1、使用set函数
set是定义集合的,无序,非重复
numList = [1,1,2,3,4,5,4]
print(list(set(numList)))
#[1, 2, 3, 4, 5]
2、先把list重新排序,然后从list的最后开始扫描
a = [1, 2, 4, 2, 4, 5,]
a.sort()
last = a[-1]
for i in range(len(a) - 2, -1, -1):
if last == a[i]:
del a[i]
else:
last = a[i]
print(a) #[1, 2, 4, 5]
3、使用字典函数
a=[1,2,4,2,4,]
b={}
b=b.fromkeys(a)
c=list(b.keys())
print(c) #[1, 2, 4]
4、append方式
def delList(L):
L1 = []
for i in L:
if i not in L1:
L1.append(i)
return L1
print(delList([1, 2, 2, 3, 3, 4, 5])) #[1, 2, 3, 4, 5]
5、count + remove方式
def delList(L):
for i in L:
if L.count(i) != 1:
for x in range((L.count(i) - 1)):
L.remove(i)
return L
print(delList([1, 2, 2, 3, 3, 4]))#[1, 2, 3, 4]
② Python 怎么除去list中的重复值以下是不正确的,结果是[1, 1, 2, 3, 4, 4, 5],为什么
需要执行两次une(a)才能去除
改了一下代码,自己跑一下下面的两端代码就应该知道为什么了,效果是一样的
>>>a=[1,1,1,1,2,3,3,3,4,4,4,4,5,5]
>>>def une(lst):
for i in lst:
print 'i=',i
print 'count('+str(i)+')='+str(lst.count(i))
if lst.count(i) > 1:
lst.remove(i)
print 'a=',a
print '-----------------------------------------'
>>>une(a)
>>>a=[1,1,1,1,2,3,3,3,4,4,4,4,5,5]
>>>def une(lst):
num = len(lst)
n=0
for n in range(num):
#print 'n=',n
i = lst[n]
print 'i=',i
print 'count('+str(i)+')='+str(lst.count(i))
if lst.count(i) > 1:
lst.remove(i)
print 'a=',a
print '-----------------------------------------'
>>>une(a)
怎么改une不用我教了吧
③ Python列表去重的六种方法
探索Python列表去重的六种高效策略</
方法一:利用set的独特性质</
Python内置的set数据结构具有无序且不允许重复元素的特性,我们可以巧妙地利用这个特性来去重。通过将列表转换为set,再转换回list,即可实现去重,尽管set会打乱原有顺序,但这是唯一可能丢失顺序的方法</。
方法二:借助字典的键值对</
利用字典的fromkeys()函数,将列表中的元素作为键,可以自动去除重复,因为字典的键必须是唯一的。但同样,这种方法同样无法保持原有的元素顺序</。
方法三:常规遍历操作</
通过遍历列表,将每个元素检查其在列表中是否首次出现,如果未出现则添加,这种方法保留了原始顺序。代码如下:
方法四:列表推导式</
列表推导式同样可以简洁地去重,同时保持元素顺序:new_list = [x for i, x in enumerate(old_list) if x not in new_list[:i]]</
方法五与六:sort与sorted函数</
如果对顺序要求不高,可以利用sort()或sorted()函数,它们会根据元素的默认排序规则去除重复,然后重新排序。但注意,这将改变列表的原始顺序。
总结</
在Python中,根据实际需求和对顺序的敏感程度,选择合适的方法去除列表中的重复项至关重要。每种方法都有其适用场景,务必根据具体问题灵活运用。
④ python中列表如何去重
可以利用set去重
代码如下:
#coding=utf-8
li=[1,2,3,4,2,1,3,0]#列表
li2=set(li)
print(li2)
⑤ python list找出一个元素的位置(重复元素怎么分别找出位置)
使用list的index方法可以找到list中第一次出现该元素的位置
>>>l=['a','b','c','c','d','c']
>>>find='b'
>>>l.index(find)
1
找出出现该元素的所有位置可以使用一个简单的表理解来实现
>>>find='c'
>>>[ifori,vinenumerate(l)ifv==find]
[2,3,5]