您的位置:首页 > 脚本大全 > > 正文

python删除列表中的重复元素(Python实现去除列表中重复元素的方法总结7种方法)

更多 时间:2022-01-28 01:21:58 类别:脚本大全 浏览量:486

python删除列表中的重复元素

Python实现去除列表中重复元素的方法总结7种方法

这里首先给出来我很早之前写的一篇博客,Python实现去除列表中重复元素的方法小结【4种方法】,感兴趣的话可以去看看,今天是在实践过程中又积累了一些方法,这里一并总结放在这里。

由于内容很简单,就不再过多说明了,这里直接上代码,具体如下:

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • # !/usr/bin/env python
  • # -*- coding:utf-8 -*-
  • '''
  • __Author__:沂水寒城
  • 功能: python列表去除方法总结(7种方法)
  • '''
  • import sys
  • reload(sys)
  • import copy
  • sys.setdefaultencoding("utf-8")
  • from collections import Counter
  • def func1(data_list):
  •  '''
  •  使用内置set方法去重
  •  '''
  •  return list(set(data_list))
  • def func2(data_list):
  •  '''
  •  借助字典方法fromkeys
  •  '''
  •  return list({}.fromkeys(data_list).keys())
  • def func3(data_list):
  •  '''
  •  使用类列表推导式
  •  '''
  •  res_list=[]
  •  for one in data_list:
  •   if not one in res_list:
  •    res_list.append(one)
  •  return res_list
  • def func4(data_list):
  •  '''
  •  使用sorted函数(其实本质上还是使用set方法进行的排序)
  •  '''
  •  res_list=copy.deepcopy(data_list)
  •  res_list=sorted(set(data_list),key=data_list.index)
  •  return res_list
  • def func5(data_list):
  •  '''
  •  使用"排序+计数"的方法
  •  '''
  •  result_list=[]
  •  temp_list=sorted(data_list)
  •  i=0
  •  while i<len(temp_list):
  •   if temp_list[i] not in result_list:
  •    result_list.append(temp_list[i])
  •   else:
  •    i+=1
  •  return result_list
  • def flagFunc(a):
  •  '''
  •  布尔函数
  •  '''
  •  if a in count_dict:
  •   count_dict[a]+=1
  •   return False
  •  else:
  •   count_dict[a]=1
  •   return True
  • def func6(data_list):
  •  '''
  •  使用map方法
  •  '''
  •  global count_dict
  •  count_dict={}
  •  tmp_list=map(flagFunc,data_list)
  •  return [data_list[i] for i in range(len(data_list)) if tmp_list[i]]
  • def func7(data_list):
  •  '''
  •  借助collections模块中的Counter方法(频度过滤方法)
  •  '''
  •  fre_list=Counter(data_list).most_common(len(data_list))
  •  return [one[0] for one in fre_list]
  • if __name__=='__main__':
  •  data_list=[12,4,7,3,4,2,4,3,5,12,78,9,0,4,5,0,44,3]
  •  print func1(data_list)
  •  print func2(data_list)
  •  print func3(data_list)
  •  print func4(data_list)
  •  print func5(data_list)
  •  print func6(data_list)
  •  print func7(data_list)
  • 结果如下:

    [0, 2, 3, 4, 5, 7, 9, 12, 78, 44]
    [0, 2, 3, 4, 5, 7, 9, 12, 78, 44]
    [12, 4, 7, 3, 2, 5, 78, 9, 0, 44]
    [12, 4, 7, 3, 2, 5, 78, 9, 0, 44]
    [0, 2, 3, 4, 5, 7, 9, 12, 44, 78]
    [12, 4, 7, 3, 2, 5, 78, 9, 0, 44]
    [4, 3, 0, 5, 12, 2, 7, 9, 78, 44]

    果然还是很有意思的哈!

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对开心学习网的支持。如果你想了解更多相关内容请查看下面相关链接

    原文链接:https://blog.csdn.net/Together_CZ/article/details/86583727