从python中删除数组中的重复数据

时间:2015-09-08 10:06:25

标签: python arrays

我有这个数据数组

data = [20001202.05, 20001202.05, 20001202.50, 20001215.75, 20021215.75]

我使用list(set(data))删除重复数据,这样就可以了解

data = [20001202.05, 20001202.50, 20001215.75, 20021215.75]

但我想根据“期间”之前的数字删除重复数据;例如,如果有20001202.0520001202.50,我想将其中一个保留在我的数组中。

3 个答案:

答案 0 :(得分:8)

由于您不关心所保留物品的顺序,您可以这样做:

>>> {int(d):d for d in data}.values()
[20001202.5, 20021215.75, 20001215.75]

如果你想保留最低项目,我想不出一个单行。

以下是任何想要为要保留的键或值添加条件的人的基本示例。

seen = set()
result = []
for item in sorted(data):
    key = int(item)  # or whatever condition
    if key not in seen:
        result.append(item)
        seen.add(key)

答案 1 :(得分:1)

data1 = [20001202.05, 20001202.05, 20001202.50, 20001215.75, 20021215.75]
for i in data1:
   if i not in ls:
      ls.append(i)
print ls

答案 2 :(得分:0)

一般来说,使用 python 3.7+,因为字典保持顺序,你可以这样做,即使顺序很重要:

data = {d:None for d in data}.keys()

然而,对于 OP 的原始问题,OP 希望根据整数值而不是原始数字进行重复数据删除,因此请参阅投票最高的答案。但一般来说,这将有助于删除真正的重复项。