python消除序列的重复值并保持顺序不变的实例
更新时间:2018年11月08日 14:38:05 作者:EricRae
今天小编就为大家分享一篇python消除序列的重复值并保持顺序不变的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
python 消除序列的重复值,并保持原来顺序
1、如果仅仅消除重复元素,可以简单的构造一个集合
$ python Python 3.5.2 (default, Nov 23 2017, 16:37:01) [GCC 5.4.0 20160609] on linux Type "help", "copyright", "credits" or "license" for more information. >>> a = [1 , 3, 5, 1, 8, 1, 5] >>> set(a) {8, 1, 3, 5} >>>
2、利用集合或者生成器解决:值必须是hashable类型
$ python Python 3.5.2 (default, Nov 23 2017, 16:37:01) [GCC 5.4.0 20160609] on linux Type "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 linux Type "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消除序列的重复值并保持顺序不变的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
pandas.dataframe中根据条件获取元素所在的位置方法(索引)
今天小编就为大家分享一篇pandas.dataframe中根据条件获取元素所在的位置方法(索引),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2018-06-06Python进行ffmpeg推流和拉流rtsp、rtmp实例详解
Python推流本质是调用FFmpeg的推流进程,下面这篇文章主要给大家介绍了关于Python进行ffmpeg推流和拉流rtsp、rtmp的相关资料,需要的朋友可以参考下2023-01-01解决Pytorch 训练与测试时爆显存(out of memory)的问题
今天小编就为大家分享一篇解决Pytorch 训练与测试时爆显存(out of memory)的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2019-08-08
最新评论