我是靠谱客的博主 无情小土豆,这篇文章主要介绍python删除列表中重复元素while循环_python – 从列表中删除唯一值并仅保留重复项...,现在分享给大家,希望可以做个参考。

这样做的明智之举是使用一种简单高效的数据结构,如

Counter:

>>> ids = [random.randrange(100) for _ in range(200)]

>>> from collections import Counter

>>> counts = Counter(ids)

>>> dupids = [id for id in ids if counts[id] > 1]

构建计数器需要O(N)时间,而不是O(N log N)时间进行排序,或O(N ^ 2)每次从头开始计算每个元素.

作为旁注:

But the ids list is likely to get quite long, and I realistically don’t want a while loop predicated on an expensive len call if I can avoid it.

len并不昂贵.它是恒定的时间,并且(至少在内置类型列表列表中)它的速度与函数可能在Python中完全没有做任何事情一样快.

代码中昂贵的部分是在循环内调用elem – 这意味着对于每个元素,你必须将它与潜在的每个元素进行比较,这意味着二次时间.

最后

以上就是无情小土豆最近收集整理的关于python删除列表中重复元素while循环_python – 从列表中删除唯一值并仅保留重复项...的全部内容,更多相关python删除列表中重复元素while循环_python内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(69)

评论列表共有 0 条评论

立即
投稿
返回
顶部