我可以从数组中找到索引号吗?

问题描述 投票:0回答:1

我在python中有这样的数组

lat = [92.6543833333333,93.6544666666666,94.145925064600005,95.145900005]

如何找到索引元素编号?

例如,93.6544666666666应该给我返回1(元素位于位置1)

我执行代码时带有代码

lat.index(latitude)

ValueError: "'93.6544666666666'" is not in list

单引号有问题吗?

lat = [92.6543833333333, 93.6544666666666, 94.145925064600005, 95.145900005]
#this works 
print lat.index(93.6544666666666)
#this doesn't 
print lat.index('93.6544666666666')

我正在根据数据库第[1]行和第[2]行的经度和纬度合并来创建这些数字。我不知道这是否会改变事情。

python arrays indexing get element
1个回答
0
投票

由于无法将浮点数存储在内存中,因此无法以您的方式进行。

93.333456 == 93.333456将在99%中返回False

而且在我看来,您正在尝试在浮点数数组中搜索字符串。

尝试此解决方案:

lat = [92.6543833333333, 93.6544666666666, 94.145925064600005, 95.145900005]

def equal(first, second, eps):
    return abs(first - second) < eps

def find(arr, num, eps):
    res = list()
    for ind, item in enumerate(arr):
        if equal(num, item, eps):
            res.append(ind)
    return res

num = 93.6544666666666
eps = 1e-8
inds = find(lat, num, eps)

print(inds)

结果:

[1]
© www.soinside.com 2019 - 2024. All rights reserved.