python集合去重原理,python中实现列表去重的方法是

  python集合去重原理,python中实现列表去重的方法是

  在我们学习了集合中的运算符之后,我们可以过滤掉集合中的重复元素,并且我们可以使用集合来做重新过滤。当然,其他过滤操作包括列表派生,我们之前也介绍过。为了验证哪种方式效率更高,本小编将列出相应的代码模块,有兴趣的小伙伴也可以一起测试结果。

  先说集合(set)的用法,花括号或者set()函数都可以用来创建集合。set类要求的参数必须是迭代器类型,如序列、字典等。然后转换成一组无序且不重复的元素。因为集合不是重复的,所以您可以对字符串、列表和元组进行重复数据删除。

  集合是从列表中删除重复值的最快方法。为了证明这一点,我们来研究以下两种方法的区别。

  方法 1:使用集合删除列表中的重复值。

  print(list(set([1,2,3,1,7]))

  yle="margin: 0pt; line-height: 1.75em;">

  

方法 2:使用一个列表推导式(list comprehension)从一个列表中删除重复值。

  

defremove_duplicates(original):

  unique=[]

  [unique.append(n)forninoriginalifnnotinunique]

  return(unique)

  

  print(remove_duplicates([1,2,3,1,7]))

性能的差异可以用「timeit」库来测量,这个库允许你对 Python 代码进行计时。下面的代码将每种方法运行了 10,000 次,并且以秒为单位输出了总计时间。

  

importtimeit

  

  #Approach1:Executiontime

  print(timeit.timeit('list(set([1,2,3,1,7]))',number=10000))

  

  #Approach2:Executiontime

  print(timeit.timeit('remove_duplicates([1,2,3,1,7])',globals=globals(),number=10000))

  

  

对比这两种方法,结果表明,使用集合删除重复值是更加高效的。虽然时间差异看似很小,但实际上在有一个非常大的列表时,能帮你节省很多的时间。

  

  

以上就是我们在python中使用集合和列表推导式测试去重快慢的结果。结果显而易见是集合去重的速度更快,想要获得同样效果的小伙伴可以也来尝试下小编的方法。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: