我在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]行的经度和纬度合并来创建这些数字。我不知道这是否会改变事情。
由于无法将浮点数存储在内存中,因此无法以您的方式进行。
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]