首页 > 解决方案 > Python:如何在保存了原始索引的列表的所有元素之间获得差异

问题描述

所以让我们假设我们有一个列表:

x = [0.2 , 0.1 , 0.3 , 0.100000001 , 0.200000002]

我不想让所有小于 1e-05 的元素True在结果列表中被标记为 a 之间的差异一种方法是先对其进行排序

   y =  x.sort()

   z= abs(np.diff(y))

  result = [False] + [i< 1e-5 for i in (z)]

所以结果列表类似于

[False True False True False]

但是这样我就失去了结果列表中的原始位置,我想要的是一个以这种方式产生的列表

[True True False True True]

标签: pythonsorting

解决方案


你可以这样做:

>>> [any(abs(y - z) < 1e-5 for z in x if z != y) for y in x]
[True, True, False, True, True]
>>> 

推荐阅读