从列表中删除唯一值,仅保留重复项

超级重男

我希望遍历ID列表,并返回出现多次的ID列表。这是我设置的有效的方法:

singles = list(ids)
duplicates = []
while len(singles) > 0:
    elem = singles.pop()
    if elem in singles:
        duplicates.append(elem)

但是id列表可能会变得很长,而且我实际上不希望在昂贵的len调用基础上进行while循环,如果可以避免的话。(我可以走一条优雅的路线,然后打电话给len,然后在每次迭代时递减它,但如果可以的话,我宁愿避免这样做)。

阿巴内特

做到这一点的明智方法是使用使数据结构变得简单高效的数据结构,例如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]

Counter花费O(N log N)进行排序,或花费O(N ^ 2)来从头开始计算每个元素相比,构建花费O(N)时间。


附带说明:

但是id列表可能会变得很长,而且我实际上不希望在昂贵的len调用基础上进行while循环,如果可以避免的话。

len不贵。这是恒定的时间,并且(至少在内置类型列表上list),它几乎只要不执行任何操作就可以在Python中获得功能。

代码中昂贵的部分是elem in singles在循环内调用-这意味着对于每个元素,您都必须将其与可能的每个其他元素进行比较,这意味着二次时间。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从向量中删除唯一值并保留重复项

来自分类Dev

从列表中删除值,仅保留唯一值

来自分类Dev

删除字典中的重复项并仅保留最小值

来自分类Dev

使用.GroupBy删除列表重复项,并保留第一个列表中的值

来自分类Dev

遍历对象/值列表,删除重复项,并在View(Python)中返回唯一值

来自分类Dev

从词典列表中删除重复项(具有唯一值)

来自分类Dev

从词典列表中删除重复项(具有唯一值)

来自分类Dev

从列表中删除重复项但只保留一些

来自分类Dev

从数组中删除重复项,保留一些值

来自分类Dev

从数组中删除重复项,保留一些值

来自分类Dev

从列表中删除重复项:保留顺序和每个元素的最后一个重复项

来自分类Dev

删除重复项但保留 R 中的值

来自分类Dev

使用.GroupBy删除列表重复项,并保留第一个列表的值

来自分类Dev

计算重复项中的唯一值

来自分类Dev

如何在猫鼬中仅获取“唯一”子子文档,删除重复项?

来自分类Dev

合并 2 个列表以从第一个列表中删除重复项,同时保留第二个列表的对应值

来自分类Dev

通过另一列中的唯一值删除重复项

来自分类Dev

从字典列表中删除重复的键,仅保留最大值的那个键值

来自分类Dev

从列表中删除重复项,但保留一个并进行编辑

来自分类Dev

返回唯一值而不删除重复项-C#

来自分类Dev

返回唯一值而不删除重复项-C#

来自分类Dev

从列表中删除重复项,同时保留最新的C#

来自分类Dev

从列表中删除重复项,同时保留最新的C#

来自分类Dev

一种删除列表中仅一个元素的连续重复项的Python方法

来自分类Dev

如何在Pandas中为每个唯一行值删除重复项?

来自分类Dev

按值从数组中删除一个项目,但保留该项目的重复项

来自分类Dev

检查列表中的唯一值,然后增加重复项 c# Linq

来自分类Dev

在 Excel 中忽略重复项并创建以逗号分隔的唯一值列表

来自分类Dev

仅通过 javascript 从下拉列表中删除重复项

Related 相关文章

  1. 1

    如何从向量中删除唯一值并保留重复项

  2. 2

    从列表中删除值,仅保留唯一值

  3. 3

    删除字典中的重复项并仅保留最小值

  4. 4

    使用.GroupBy删除列表重复项,并保留第一个列表中的值

  5. 5

    遍历对象/值列表,删除重复项,并在View(Python)中返回唯一值

  6. 6

    从词典列表中删除重复项(具有唯一值)

  7. 7

    从词典列表中删除重复项(具有唯一值)

  8. 8

    从列表中删除重复项但只保留一些

  9. 9

    从数组中删除重复项,保留一些值

  10. 10

    从数组中删除重复项,保留一些值

  11. 11

    从列表中删除重复项:保留顺序和每个元素的最后一个重复项

  12. 12

    删除重复项但保留 R 中的值

  13. 13

    使用.GroupBy删除列表重复项,并保留第一个列表的值

  14. 14

    计算重复项中的唯一值

  15. 15

    如何在猫鼬中仅获取“唯一”子子文档,删除重复项?

  16. 16

    合并 2 个列表以从第一个列表中删除重复项,同时保留第二个列表的对应值

  17. 17

    通过另一列中的唯一值删除重复项

  18. 18

    从字典列表中删除重复的键,仅保留最大值的那个键值

  19. 19

    从列表中删除重复项,但保留一个并进行编辑

  20. 20

    返回唯一值而不删除重复项-C#

  21. 21

    返回唯一值而不删除重复项-C#

  22. 22

    从列表中删除重复项,同时保留最新的C#

  23. 23

    从列表中删除重复项,同时保留最新的C#

  24. 24

    一种删除列表中仅一个元素的连续重复项的Python方法

  25. 25

    如何在Pandas中为每个唯一行值删除重复项?

  26. 26

    按值从数组中删除一个项目,但保留该项目的重复项

  27. 27

    检查列表中的唯一值,然后增加重复项 c# Linq

  28. 28

    在 Excel 中忽略重复项并创建以逗号分隔的唯一值列表

  29. 29

    仅通过 javascript 从下拉列表中删除重复项

热门标签

归档