时间:2021-05-22
python 消除序列的重复值,并保持原来顺序
1、如果仅仅消除重复元素,可以简单的构造一个集合
$ pythonPython 3.5.2 (default, Nov 23 2017, 16:37:01) [GCC 5.4.0 20160609] on linuxType "help", "copyright", "credits" or "license" for more information.>>> a = [1 , 3, 5, 1, 8, 1, 5]>>> set(a){8, 1, 3, 5}>>>2、利用集合或者生成器解决:值必须是hashable类型
$ pythonPython 3.5.2 (default, Nov 23 2017, 16:37:01) [GCC 5.4.0 20160609] on linuxType "help", "copyright", "credits" or "license" for more information.>>> def dupe(items):... seen = set()... for item in items:... if item not in seen:... yield item... seen.add(item)... >>> a = [1 , 3, 5, 1, 8, 1, 5]>>> list(dupe(a))[1, 3, 5, 8]>>>3、消除元素不可哈希:如字典类型
Python 3.5.2 (default, Nov 23 2017, 16:37:01) [GCC 5.4.0 20160609] on linuxType "help", "copyright", "credits" or "license" for more information.>>> def rem(items, key=None):... seen = set()... for item in items:... va = item if key is None else key(item)... if va not in seen:... yield item... seen.add(va)... >>> a = [ {'x':1, 'y':2}, {'x':1, 'y':3}, {'x':1, 'y':2}, {'x':2, 'y':4}]>>> list(rem(a, key=lambda d: (d['x'],d['y'])))[{'y': 2, 'x': 1}, {'y': 3, 'x': 1}, {'y': 4, 'x': 2}]>>> list(rem(a, key=lambda d: d['x']))[{'y': 2, 'x': 1}, {'y': 4, 'x': 2}]>>>>>> #lambda is an anonymous function:... fuc = lambda : 'haha'>>> print (f())>>> print (fuc())haha>>>以上这篇python消除序列的重复值并保持顺序不变的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
1.删除序列相同元素并保持顺序如果仅仅就是想消除重复元素,通常可以简单的构造一个集合,利用集合之间元素互不相同的特性就可以消除重复,但是这种方法生成的结果中元素
可迭代对象去重(保持顺序不变)deffilter_multi(items,key=None):"""可迭代对象去重(保持顺序不变)[1,4,7,2,4,7,3,
本文实例讲述了Python让字典保持有序的方法。分享给大家供大家参考,具体如下:问题:创建一个字典,同时对字典做迭代或序列化操作时,也能控制其中元素的顺序;解决
python列表元素去重后如何保持原来的顺序不变原列表:list1=[1,2,1,4,9,3,5,2,6,7,3,1,6,8,4,0]去重,使用集合set来去重
Python递增子序列的更大值总和Python递增子序列的更大值总和代码如下所示:arr=[1,101,2,3,100,4,5]msis=[elemforele