导航:首页 > 编程语言 > 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字符串去重顺序不变相关的资料

热点内容
做算法还是开发 浏览:872
按键精灵自定义图层命令 浏览:351
魅蓝3手机音视频文件夹 浏览:943
安卓手机制表怎么换行 浏览:215
墙柱搭接箍筋怎么加密 浏览:456
怎么加密不让人打开 浏览:336
2g3g算法 浏览:206
python可以在net开发 浏览:934
编程里的hr啥意思 浏览:411
上海php兼职 浏览:728
顺丰app如何验证学生 浏览:380
服务器mac地址过滤器 浏览:942
程序员一年内被开除 浏览:456
福建文档课件加密企业 浏览:790
appstore美国的界面怎么看呀 浏览:533
hlt单片机 浏览:325
CA的命令 浏览:685
安卓怎么传王者应用给苹果 浏览:923
aws云服务器自建 浏览:840
如何更换服务器登录网站 浏览:700