导航:首页 > 编程语言 > python字符串去重顺序不变

python字符串去重顺序不变

发布时间:2023-03-26 17:50:11

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如何对列表进行去重

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 数组去重的方法

如: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数字列表去重,如何简单的既去重还能按原来的顺序输出

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字符串去重顺序不变相关的资料

热点内容
sybaseisql命令 浏览:181
android权威编程指南pdf 浏览:661
哪些软件属于加密软件 浏览:644
文件夹75丝什么意思 浏览:468
最便宜sop8单片机 浏览:964
图解周易预测学pdf 浏览:418
c盘莫名奇妙多了几个文件夹 浏览:169
贵州花溪门票优惠app哪个好 浏览:801
如何说话不会让人有被命令的感觉 浏览:438
哪里可下载湘工惠app 浏览:263
福特python 浏览:310
pdf转换成word表格 浏览:351
无线远端服务器无响应是什么意思 浏览:670
两位整数倒序输出python 浏览:781
为什么我的世界天空服务器进不去 浏览:262
钉钉直播后的视频如何线上加密 浏览:503
听主的命令 浏览:208
全民上云时代云服务器 浏览:519
iphone不创建id如何下载app 浏览:972
windowsphp扩展安装 浏览:93