Python对列表去重的4种方法

发表于:2017-12-05 10:58

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:极客头条

#
Python
分享:
  开发中对数组、列表去重是非常常见的需求,对一个list中的id进行去重,有下面几种方法,前面两种方法不能保证顺序, 后面两种方法可以保持原来的顺序。
  下面的代码都在Python3下测试通过, Python2下请自行测试
  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 = []
  for id in orgList:
  if id not in formatList:
  formatList.append(id)
  print (formatList)
  结果:
  [1, 0, 3, 7, 5]
  but,这样的代码不够简洁,不够高端
  4. 按照索引再次排序
  orgList = [1,0,3,7,7,5]
  formatList = list(set(orgList))
  formatList.sort(key=orgList.index)
  print (formatList)
  结果:
  [1, 0, 3, 7, 5]
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号