a = [2, 5, 6, 12, 21, 25, 32, 41]
这是我的list
,我想删除所有不相差7的数字。
答案 0 :(得分:0)
在深入探讨答案之前,让我们先看一下我们正在处理的内容。
您获得了一个列表“ A”,您需要遍历该列表以获得大于前一个值+ 7的数字列表
如果把问题归结为一个简单的问题,就会有两个主要目标
解决此问题有两种通用方法。在一个循环中,我们填充一个新列表。第二种方法是操纵原始列表。 尽管“第一”方法需要额外的内存,但为简单起见,我将使用“第一”方法。
a = [2, 5, 6, 12, 21, 25, 32, 41] # your original list
b = [] # Empty list that will contain final product
for i in range(len(a)):
if len(b) == 0: # if the list is empty, we add first item from 'a' (In our example, it'll be 2)
b.append(a[i])
else:
if a[i] > b[len(b)-1]+7 or a[i] < b[len(b)-1]-7: # for every value of a, we compare the last digit from list b
b.append(a[i])
答案 1 :(得分:-1)
据我所知,在您的输出列表中,只有那些总和为7的元素在那里。因此可以通过
实现i=1;
while i<len(a):
if(a[i]-a[i-1] < 7):
a.remove(a[i])
else:
i+=1
print(a)