我有这个数据数组
data = [20001202.05, 20001202.05, 20001202.50, 20001215.75, 20021215.75]
我使用list(set(data))
删除重复数据,这样就可以了解
data = [20001202.05, 20001202.50, 20001215.75, 20021215.75]
但我想根据“期间”之前的数字删除重复数据;例如,如果有20001202.05
和20001202.50
,我想将其中一个保留在我的数组中。
答案 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 希望根据整数值而不是原始数字进行重复数据删除,因此请参阅投票最高的答案。但一般来说,这将有助于删除真正的重复项。