一种方法是使用next
and enumerate
:
>>> a = [[[0.0125, 6.6], [0.0125, 6.65], [0.0125, 6.7], [0.0125, 6.75], [0.0125, 6.8]], [[0.0185, 6.6], [0.0185, 6.65], [0.0185, 6.7], [0.0185, 6.75], [0.0185, 6.8]]]
>>> search_for = [0.0185, 6.75]
>>> print next(((i,j) for i,x in enumerate(a) for j,y in enumerate(x)
... if y == search_for), None)
(1, 3)
>>> search_for = [0.0185, 99]
>>> print next(((i,j) for i,x in enumerate(a) for j,y in enumerate(x)
... if y == search_for), None)
None
但由于测试浮点数的相等性可能过于敏感,您可能需要替换y == search_for
与is_close(y, search_for)
允许一定程度的错误容忍度的函数。使用方法is in
or .index
真的无法处理这个问题。