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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。