Python 哪种类型的列表是唯一的,如何操作它?

Python 哪种类型的列表是唯一的,如何操作它?,python,opencv,computer-vision,Python,Opencv,Computer Vision,我使用OpenCV以这种方式检测轻快的关键点: img = cv2.imread(image_path) gray= cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) kp, descriptors = cv2.BRISK_create().detectAndCompute(gray,None) kp是一个列表,但它也是一种结构。它具有参数或“子列表”,如kp.pt值、kp。响应值等等。我是Python的新手,所以我想知道以下内容 1-此列表是否有特定名称?它似乎不是我

我使用OpenCV以这种方式检测轻快的关键点:

img = cv2.imread(image_path)
gray= cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
kp, descriptors = cv2.BRISK_create().detectAndCompute(gray,None)
kp是一个列表,但它也是一种结构。它具有参数或“子列表”,如kp.pt值、kp。响应值等等。我是Python的新手,所以我想知道以下内容

1-此列表是否有特定名称?它似乎不是我在Python中使用的列表。如何获取有关此类列表的更多信息

2-我如何知道kp的其他参数(或“子列表”)是什么?我可以用Python打印它们吗

3-如何在变量中保存所有元素,例如kp.response?我只能索引像kp[1]这样的单个元素

4-如何对kp.response值进行排序,以获取N个最高kp.response值的索引?

1-
type(kp)
这将获取对象是其实例的类

2-
dir(kp)
这应该列出对象的属性。对于某些非常动态的类型,它们会动态生成属性以响应访问尝试,这可能不起作用。(但它仍然可以,因为
dir
也可以动态生成。)

在这种情况下,如果您可以在类的源代码中找到
\uuu getattr\uuu
方法,它可能会为您提供这些动态属性实际存储在哪里的线索

3-
[e.对kp中e的响应]
可能。通常情况下,如果它像那样不灵活,它也是不灵活的

4-
print([i for uuu,i in sorted((e.response,i)for i,e in enumerate(kp))[-N:]])
尚未对此进行测试

还可以尝试
help(kp)
,它可能会解释如何更好地使用它。使用
help
处理您不理解的任何内容。它可能有一个docstring

现在我只需要弄清楚如何将结果列表用作kp索引


可能类似于
[kp[i]for i in index]

请每次提问一个问题。1-好的,谢谢。2-对象的属性显示“append”、“count”、“extend”等函数,它们比变量属性更多的是列表属性(例如,有kp.pt、kp.response,还有其他属性吗?)!现在我只需要弄清楚如何使用结果列表作为kp indicatesx=[I for ui,I in sorted((e.response,I)for I,e in enumerate(kp))[-1000:]和show=[kp[I]for I in x]。非常感谢你,我从你身上学到了很多!