2024-04-24 21:20:56 发布
网友
我有一个包含很多值的列表,比如
mylist = [4361, 4868,4878, 5395, 5940, 6539, 6544, 7164 ]
如果有差值小于80的值,比如4868,4878,我想排除第二个值,只保留4868,得到被删除的索引
4868,4878
4868
新的结果列表将
my_list = [4361, 4868, 5395, 5940, 6539, 7164]
有没有一个简单的方法来实现这一点
这应该可以做到:
mylist = [4361, 4868, 4878, 5395, 5940, 6539, 7164] new = [x for x, y in zip(mylist, mylist[1:]) if y - x >= 80] if mylist[-1] - new[-2] >= 80: new.append(mylist[-1])
假设列表已排序,只需将当前值与结果列表中的最后一个值(如果有)进行比较,如果差异足够大,则将其追加
mylist = [4361, 4868,4878, 5395, 5940, 6539, 6544, 7164 ] n = 80 result, deleted = [], [] for i, x in enumerate(mylist): if result == [] or x - result[-1] > n: result.append(x) else: deleted.append(i) print(result) # [4361, 4868, 5395, 5940, 6539, 7164] print(deleted) # [2, 6]
这应该可以做到:
假设列表已排序,只需将当前值与结果列表中的最后一个值(如果有)进行比较,如果差异足够大,则将其追加
相关问题 更多 >
编程相关推荐