我已经更新了问题陈述,以帮助解决识别到特定坐标对的距离最短的坐标对列表的问题。我有一个可变长度的二维列表/数组,如下所示 :
d = [[[10,10],[20,20]],[[40,40],[60,60],[20,20]],[[60,60],[20,20],[30,30],[10,10]],[[70,70],[20,20]]]
我想要列表中最接近 [80, 80] 的元素索引列表。
答案应该是:
[1, 1, 0, 0]
最好的 pythonic 方法是什么? @tom-fuller 和@Skycc 提到了一个很好的方法来做到这一点,但我需要更进一步,看看一对满足条件的值。根据推荐的,我尝试了;
[i.index(min(i, key=lambda x:np.linalg.norm(x-[80,80]))) for i in d]
这没有用。我怀疑这里的可迭代 i 的 min 函数让我很伤心。
最佳答案
使用列表理解
d = [[1,2],[4,6,2],[6,2,3,1],[7,2]]
close8 = [i.index(min(i, key=lambda x:abs(x-8))) for i in d]
# [1, 1, 0, 0]
关于python - 在python中选择满足条件的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40841894/