当前位置:首页 » 编程语言 » python的list去重

python的list去重

发布时间: 2024-03-07 09:30:15

‘壹’ python如何实现删除某list中所有重复出现的元素

1. 使用内置函数set
lists = [1,1,2,3,4,6,6,2,2,9]
lists = list(set(lists))
先将列表转换为集合,因为集合是不重复的,故直接删除重复元素,而且输出结果为排序后的

‘贰’ python 列表多个元素如何配对去重呢

每次从列表中取出两个元素,如果第二个元素不在输出列表,就将这两个元素添加到输出列表。
source = ["a","1","b","1","c","2","d","3","e","4","c","3"]
out = []
for e in zip(source[0::2],source[1::2]):
....if e[1] not in out:
........out = out + list(e)
print(out)

‘叁’ Python数字列表去重,如何简单的既去重还能按原来的顺序输出

Python数字列表去重,还能按原来的顺序输出.

第一种方法

alist = [1, 2, 2, 4, 4, 6, 7]

b = []

for i in alist:

if i not in b:

b.append(i)

print(b)

源代码(注意源代码的缩进)

‘肆’ Python如何对列表进行去重

1.使用set的特型,python的set和其他语言类似,是一个无序不重复元素集
orgList=[1,0,3,7,7,5]
#list()方法是把字符串str或元组转成数组
formatList=list(set(orgList))
print(formatList)
结果:
[0,1,3,5,7]
2.使用keys()方法
orgList=[1,0,3,7,7,5]
#list()方法是把字符串str或元组转成数组
formatList=list({}.fromkeys(orgList).keys())
print(formatList)
结果:
[0,1,3,5,7]
上面两种方法的问题是:结果是没有保持原来的顺序。
3.循环遍历法
orgList=[1,0,3,7,7,5]
formatList=[]
foridinorgList:
ifidnotinformatList:
formatList.append(id)
print(formatList)
结果:
[1,0,3,7,5]
这样的代码不够简洁
4.按照索引再次排序
orgList=[1,0,3,7,7,5]
formatList=list(set(orgList))
formatList.sort(key=orgList.index)
print(formatList)
结果:
[1,0,3,7,5]

‘伍’ python中列表如何去重

可以利用set去重

代码如下:

#coding=utf-8

li=[1,2,3,4,2,1,3,0]#列表
li2=set(li)
print(li2)

‘陆’ python 数组去重的方法

如:arr =['a','d','e','a']
用: arr= sorted(set(arr), key=arr.index)
同: arr = list(set(arr))
arr.sort(key=arr.index)
⚠️直接set(arr)也可以去除重复元素,只是新数组的顺序就不是原来的顺序陵搏姿了。

如:arr=[{'text':wuyuan,'value':1},{'text':默认,'value':2},{'text':默认,'value':2},
{'text':wyy,'value':4}]
用银闷: f = lambda x,y:x if y in x else x + [y]
arr = rece(f, [[], ] + arr)
⚠️这里去除的字典里面的尺绝键值对必须是完全一样的。

‘柒’ 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] 。

‘捌’ python中如何删除列表中重复的元素

举个例子,比如有这样一个列表l,可表示为[1,2,2,5,3,6],它可以通过下面的操作达到去重的目的:l=list(set(l)),在python shell中代码执行如下图所示:

python列表去重操作代码运行结果

‘玖’ python如何删除list里重复的元素

这个可简单可复杂。

简单的:利用集合

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

复杂的:

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

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

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

额, 不好意思,看错了

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

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

热点内容
怎么编译原生安卓手机 发布:2024-11-29 05:44:28 浏览:192
java代码编译java文件 发布:2024-11-29 05:44:27 浏览:207
如何部署远程服务器 发布:2024-11-29 05:34:37 浏览:522
红米系统存储与手机存储 发布:2024-11-29 05:33:55 浏览:197
qt反编译工具 发布:2024-11-29 05:29:31 浏览:479
心c语言程序 发布:2024-11-29 05:15:58 浏览:176
三星s6有什么配置 发布:2024-11-29 05:15:23 浏览:762
安卓泰捷视频在哪里 发布:2024-11-29 04:59:43 浏览:597
androidstudio同步 发布:2024-11-29 04:37:50 浏览:115
python用什么 发布:2024-11-29 04:37:40 浏览:793