当前位置:首页 » 编程语言 » pythonlistdistinct

pythonlistdistinct

发布时间: 2022-11-03 19:21:06

1. 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)

2. python两个list元素的相同项

list1 = [1,2,3] list2=[2,3,4]set1 = set(list1)set2 = set(list2)print(set1&set2){2, 3}print(set1^set2){1, 4}

3. python list 去重复

import
a = [{'a':12,'b':21},{'a':13,'b':22},{'a':14,'b':22},{'a':15,'b':23},{'a':16,'b':22}]
d = {}
for i in a:
d.setdefault(i['b'], 0)
d[i['b']] += 1
at = .(a)
for i in at:
if d[i['b']] > 1:
a.remove(i)
print a
先把b值统计一下。然后再一个比对,如果统计个数大于1,就从列表中移出。

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

这个可简单可复杂。

简单的:利用集合

a=list(set(a))#这样就可以了,是不是很简单

复杂的:

就是先对列表排序,然后比较相邻元素是否相同,相同的则删除后面的。大体算法思路,代码自己写吧

当然还有其他的算法...

-----------------------------------------------------------------------------------

额, 不好意思,看错了

defQ(a):
aa=[]
foriina:
ifa.count(i)==1:
aa.append(i)
returnaa

这个就可以了,利用 list.count(obj) 计算obj在list中出现的次数进行判断

5. Python中list,tuple,dict,set的区别和用法

python 中list,tuple,dict,set是最常用的集合类型。
list列表,相当于一个数组,不过list的长度是自动变化的而且列表元素自由的,不必每个元素都是同一种类型。它的简洁的定义方式是a=[]。有序组合
tuple也是一个组合。不过tuple在定义好之后就不能再变化。它的简洁的定义方式是a=1,3也可以是a=(1,3).有序组合。
dict是字典类型。也就是键值对类型。键名不可以重复,并且不可以变化(字符串就符合这个要求,常用字符串作为键名)。它的简洁的定义方式是a={}.无序组合(意思就是你无法按照添加的顺序对他进行遍历)。
set是set类型(不好翻译,用的也少)。也是一个无序的组合,元素是互斥的,也就不会出现相同的元素。可以把一个序列转换成无重复元素的set.无序组合。

6. python中对list去重的多种方法

python中对list去重的多种方法
今天遇到一个问题,在同事随意的提示下,用了 itertools.groupby 这个函数。不过这个东西最终还是没用上。
问题就是对一个list中的新闻id进行去重,去重之后要保证顺序不变。
直观方法
最简单的思路就是:

这样也可行,但是看起来不够爽。

用set

另外一个解决方案就是用set:
代码如下:

ids = [1,4,3,3,4,2,3,4,5,6,1]
ids = list(set(ids))

这样的结果是没有保持原来的顺序。

按照索引再次排序

最后通过这种方式解决:
代码如下:

ids = [1,4,3,3,4,2,3,4,5,6,1]
news_ids = list(set(ids))
news_ids.sort(ids.index)

使用itertools.grouby

文章一开始就提到itertools.grouby, 如果不考虑列表顺序的话可用这个:
代码如下:

ids = [1,4,3,3,4,2,3,4,5,6,1]
ids.sort()
it = itertools.groupby(ids)

for k, g in it:
print k

关于itertools.groupby的原理可以看这里:http://docs.python.org/2/library/itertools.html#itertools.groupby

网友补充:用rece

网友reatlk留言给了另外的解决方案。我补充并解释到这里:
代码如下:

In [5]: ids = [1,4,3,3,4,2,3,4,5,6,1]

In [6]: func = lambda x,y:x if y in x else x + [y]

In [7]: rece(func, [[], ] + ids)
Out[7]: [1, 4, 3, 2, 5, 6]

上面是我在ipython中运行的代码,其中的 lambda x,y:x if y in x else x + [y] 等价于 lambda x,y: y in x and x or x+[y] 。

7. python中list表示什么

list是python语言中的基本数据类型列表,使用[]表示;列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表,如下:
ak = [1, '67',true,[23,45,67]]

8. python list找出一个元素的位置(重复元素怎么分别找出位置)

几种方式的回答:
1)
print('*'*15,'想找出里面有重复数据的索引值','*'*15)
listA = [100, 94, 88, 82, 76, 70, 64, 58, 52, 46, 40, 34,76]
print('列表中第1次出现的位置 = ',listA.index(76))
2)
a_list = ['a','b','c','c','d','c']
find = 'c'
print('重复元素出现的位置索引分别是 = ',[i for i,v in enumerate(a_list) if v==find])
-----------------------------------------------------
3)### 求某个元素重复的索引值,函数方式表述如下:
a_list = ['a','b','c','c','d','c']
def unique_index(L,f):
"""L表示列表, i表示索引值,v表示values,f表示要查找的元素 """
return [i for (i,v) in enumerate(L) if v==f]
print('索引值 = ',unique_index(a_list,'c'))

运行结果:
索引值 = [2, 3, 5]

4)还缺一种,列出多个元素重复的索引值,以后再补充
......

9. 如何找出Python list中有重复的项

可以对第二个list的元素进行遍历,检查是否出现在第二个list当中,如果使用表理解,可以使用一行代码完成任务。
list1 = [1,2,3,4,5]
list2 = [4,5,6,7,8]
print [l for l in list1 if l in list2]
# [4,5]
如果每一个列表中均没有重复的元素,那么还有另外一种更好的办法。首先把两个list转换成set,然后对两个set取交集,即可得到两个list的重复元素。
set1 = set(list1)
set2 = set(list2)
print set1 & set 2
# {4,5}

10. 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]

热点内容
如何设置健康码快捷方式vivo安卓 发布:2025-01-10 21:39:52 浏览:500
安卓不兼容怎么解决 发布:2025-01-10 21:37:02 浏览:29
linux字体大小 发布:2025-01-10 21:36:21 浏览:492
安卓手机的音量在哪里调 发布:2025-01-10 21:32:11 浏览:613
路由器怎么设置登录密码怎么设置密码 发布:2025-01-10 21:11:12 浏览:893
营运车解压 发布:2025-01-10 21:11:01 浏览:932
安卓是哪里出产 发布:2025-01-10 21:10:23 浏览:953
本科来了安卓版叫什么 发布:2025-01-10 21:08:43 浏览:649
南京c语言 发布:2025-01-10 20:55:08 浏览:466
如何excel设置密码保护 发布:2025-01-10 20:50:07 浏览:994