Python 3.x 为什么已排序(等高线)[0]与已排序(等高线)[:1]不同

Python 3.x 为什么已排序(等高线)[0]与已排序(等高线)[:1]不同,python-3.x,opencv,image-processing,opencv3.0,Python 3.x,Opencv,Image Processing,Opencv3.0,我试图找到一个图像中最大的轮廓,它包含两个轮廓,其中一个不是闭合线。轮廓线是从图像的边缘切割出来的。另一个很近,由一个区域组成 roi_cnts = sorted(roi_cnts, key = cv2.contourArea, reverse = True)[:1] 不同于 roi_cnts = max(roi_cnts, key=cv2.contourArea) #or roi_cnts = sorted(roi_cnts, key = cv2.contourArea, reverse =

我试图找到一个图像中最大的轮廓,它包含两个轮廓,其中一个不是闭合线。轮廓线是从图像的边缘切割出来的。另一个很近,由一个区域组成

roi_cnts = sorted(roi_cnts, key = cv2.contourArea, reverse = True)[:1]
不同于

roi_cnts = max(roi_cnts, key=cv2.contourArea)
#or
roi_cnts = sorted(roi_cnts, key = cv2.contourArea, reverse = True)[0]

我不明白为什么这两种方法有不同的结果。

切片表示法
[:1]
生成一个包含第一个元素的1-list。键表示法
[0]
生成第一个元素,但不在列表中

>>> mylist = range (10)
>>> mylist[:1]
[0]
>>> mylist[0]
0

切片表示法生成包含第一个元素的1-列表。键表示法
[0]
生成第一个元素,但不在列表中

>>> mylist = range (10)
>>> mylist[:1]
[0]
>>> mylist[0]
0