python - 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]
解决方案
你可以这样做:
>>> [any(abs(y - z) < 1e-5 for z in x if z != y) for y in x]
[True, True, False, True, True]
>>>
推荐阅读
- download - 从 URL 下载 TXT 文件并保存到 Flutter Web 上的 PC
- ruby-on-rails - 设计 + 管理:ActionController::RoutingError - 未初始化的常量 Admin::SessionsController:
- typescript - 如何在 TypeScript 中为 Object.entries 函数添加重载
- matlab - 从 .mat 文件中提取数据和标签
- ios - 转到前台时 Xcode 中的 BackgroundSession 错误
- php - 如何在 Laravel 中过滤重复数据
- php - Woocommerce 如何向产品页面上的计数器添加预定义值
- javascript - 如何将 Underscore 模板翻译成 Handlebars 模板?
- python - 从文件中读取多种类型
- flutter - Flutter BLoC `buildWhen` 属性