如果我得到10,50,100,120,140,160,100,50这个代码:
mock_len = len(db)
epsilon = 20
max_data = 0
for i in range(mock_len - 1):
if db[i+1][0]-db[i][0] == 20:
max_data = db[i+1]
print max_data
将打印120,140,160,但我只想打印1个值,在我的情况下为120,当我得到一个值以便在循环中进行比较时,如何将max_data var重置为0。
假设我得到120,得到120到max_data初始var,将max_data重置为0并继续比较。我有一个更大的数据列表,当我遇到20个差异时我只想要1个值。
答案 0 :(得分:0)
正如我在评论中所说,你的问题非常清楚。但下面是我的远景尝试。
db = [10, 50, 100, 120, 140, 160, 100, 50]
g = [db[i] for i, _ in enumerate(db) if db[i]-db[i-1] == 20]
print(g) # [120, 140, 160] :prints all instances where the difference is 20
print(g[0]) # 120 :prints the first instance where the difference is 20
您无需重置任何内容即可获得第一个实例。或者,如果您只想要第一个并且不想找到它们,则可以使用while
循环。我会让你自己写一下。