【发布时间】:2020-02-23 03:53:01
【问题描述】:
我在 Python 中有三个单独的列表,它们都非常大。一项规定是列表不能根据它们当前的显示方式重新排序。每个列表的外观如下:
lats = [40.92322342,40.92322342,40.92322342,40.92322342,40.92322342]
lons = [-74.32176109,-74.29518277,-74.26860445,-74.24202613,-74.21544781]
data = [19,19,19,17,18]
我希望提供纬度和经度配对,并希望返回与提供的纬度和经度最接近的data 列表的索引号和相应值。
例如,配对 40.9254, -74.2765 将返回相应的索引号,这将是上面提供的列表 sn-p 中的第三组值。
使用this example,我已经能够按单个列表对该搜索进行分区并返回相应的索引号。但是,索引号是不同的。
代码:
min(enumerate(lats), key=lambda x: abs(x[1]-40.9254))
min(enumerate(lons), key=lambda x: abs(x[1]-(-74.2765)))
an index #, 40.92322342
a different index # than above, -74.26860445
有没有有效的方法来解决这个问题?
【问题讨论】:
-
你的与上面的索引不同是什么意思?
lats在您的输入中包含相同的值 -
您需要定义
matches the closest的both lat 和lon。也许类似于差异绝对值的总和。您不能单独查看它们。
标签: python arrays list indexing min