香港云主机最佳企业级服务商!

ADSL拨号VPS包含了中国大陆(联通,移动,电信,)

中国香港,国外拨号VPS。

当前位置:云主机 > python >

电信ADSL拨号VPS
联通ADSL拨号VPS
移动ADSL拨号VPS

python消除序列的重复值并保持顺序不变的实例


时间:2022-02-08 17:49 作者:admin


python/' target='_blank'>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消除序列的重复值并保持顺序不变的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

(责任编辑:admin)






帮助中心
会员注册
找回密码
新闻中心
快捷通道
域名登录面板
虚机登录面板
云主机登录面板
关于我们
关于我们
联系我们
联系方式

售前咨询:17830004266(重庆移动)

企业QQ:383546523

《中华人民共和国工业和信息化部》 编号:ICP备00012341号

Copyright © 2002 -2018 香港云主机 版权所有
声明:香港云主机品牌标志、品牌吉祥物均已注册商标,版权所有,窃用必究

云官方微信

在线客服

  • 企业QQ: 点击这里给我发消息
  • 技术支持:383546523

  • 公司总台电话:17830004266(重庆移动)
  • 售前咨询热线:17830004266(重庆移动)