python - 在python中选择满足条件的索引

标签 python arrays list numpy

我已经更新了问题陈述,以帮助解决识别到特定坐标对的距离最短的坐标对列表的问题。我有一个可变长度的二维列表/数组,如下所示 :

 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/

相关文章:

list - 如何在Grails中过滤列表以仅显示特定用户的 'belongsTo'?

python - 如何获取元素在列表中出现的次数 Python

python - 先按字母排序包含字母数字项目的列表

c++ - 采用不同大小数组的构造函数

python - 将 Python IDLE 设置为默认程序以打开 .py 扩展

python - 在 numpy 数组中计算值发生更改之前的长度以及转换次数的最佳方法(最好是 numpythonic)?

python - 将字符串转换为 NumPy datetime64 dtype

python - 我将如何使用字典中的键

python Tkinter 捕获键盘事件保存为一个字符串

python - 如何更新 python 列表中的值?