【问题标题】:how to remove duplicates in a huge python list如何删除巨大的python列表中的重复项
【发布时间】:2017-01-31 14:36:06
【问题描述】:

我有一个巨大的 python 列表,大约 100 MB 大小的字符串和整数。我有一些字符串作为三重和重复。我尝试使用此代码删除重复项:

from collections import OrderedDict

duplicates = [.......large size list of 100 MB....]

remove = OrderedDict.fromkeys(duplicates).keys()

print remove

我已经完成了小尺寸列表,效果很好,对于这个大列表,我花了一整天的时间,但还没有完成。关于如何在几分钟内完成此操作的任何建议,..fewer hrs??。我已经尝试在 Ubuntu 中安装 CUDA 来解决它,但我不断收到错误:请参阅 here

【问题讨论】:

  • 您的意思是要删除所有重复项还是仅删除其他。说我给你[a,b,a,c,a]。你想要[a,b,c] 还是[b,c]
  • 这听起来像是一个奇怪的操作,想在列表上做。您确定要使用list 吗?如果您使用不同的数据结构(例如集合),这种操作将是微不足道的。
  • @willem,如果我有 ['a','b','a','c',],我想要 ['a','b','c',]
  • @kevin,我试了一套同样长的时间
  • 您需要保留订单吗?如果没有,请使用 remove = set(duplicates) 如果订单很重要,正如 Raymond Hettinger 所说,没有比您正在做的更快的方法了:stackoverflow.com/questions/480214/…

标签: python python-2.7 list


【解决方案1】:

不确定这是否足够有效,但解决它的一种简单方法是将列表转换为集合。

def unique(objects):
    return list(sorted(set(objects)))

【讨论】:

  • 处理数据仍然很慢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-10-04
  • 1970-01-01
  • 2019-01-30
  • 2010-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多