我有一张单子
mylist = [75,75,76,77,78,79,154,155,154,156,260,262,263,550,551,551,552]
我需要删除由maxumim四个数字相互接近的数字,如:
num-4 <= x <= num +4
最后我需要的清单应该是:
list = [75,154,260,550]
或者
list = [76,156,263,551]
在名单上留下哪个数字并不重要,只有一个接近的数字。你知道吗
我试过这个让我:
for i in range(len(l)):
for j in range(len(l)):
if i==j or i==j+1 or i==j+2 or i == j+3:
pp= l.pop(j)
print(pp)
print(l)
IndexError: pop index out of range
而这个不是我所需要的:
for q in li:
for w in li:
print(q,'////',w)
if q == w or q ==w+1 or q==w+2 or q==w+3:
rem = li.remove(w)
谢谢
你可以用一个集合或列表来完成,你不需要一个dict
此方法将所有值存储在目前为止看到的每个值的4以内。当您从myList中查看一个新值时,您只需要通过检查usedValues来检查之前是否在其大致范围内看到了某些内容。你知道吗
下面使用^{} 标识来自iterable的运行,这些运行以值
start
开始,并且包含与start
相差不超过4的值。然后我们将所有这些start
值收集到一个列表中。你知道吗这假设输入数据已经排序。如果不是,则必须对其进行排序:
groupby(sorted(mylist), runs())
。你知道吗相关问题 更多 >
编程相关推荐