Python 3.x 为什么min()返回13而不是1?

Python 3.x 为什么min()返回13而不是1?,python-3.x,Python 3.x,我是编程新手,在理解一些函数的功能时遇到了一些问题。目前,我在理解min()函数的作用时遇到了一些问题 lst = [2,13,5,5,5,6,9,7,4,3,1] print(lst.pop(min(lst))) 输出是13而不是1。如果min()?这需要在for循环中吗 min返回最小值,在本例中为1。但是您要求的是lst.pop(min(lst)),即lst.pop(1)。这将删除并返回元素编号1(第二个元素,因为元素从0开始编号),即13。min返回最小值,即在本例中为1。但是您要求的

我是编程新手,在理解一些函数的功能时遇到了一些问题。目前,我在理解
min()
函数的作用时遇到了一些问题

lst = [2,13,5,5,5,6,9,7,4,3,1]
print(lst.pop(min(lst)))

输出是13而不是1。如果
min()?这需要在for循环中吗

min
返回最小值,在本例中为1。但是您要求的是
lst.pop(min(lst))
,即
lst.pop(1)
。这将删除并返回元素编号1(第二个元素,因为元素从0开始编号),即13。

min
返回最小值,即在本例中为1。但是您要求的是
lst.pop(min(lst))
,即
lst.pop(1)
。这将删除并返回元素编号1(第二个元素,因为元素从0开始编号),即13。

一次分解一个步骤:

>>> lst = [2,13,5,5,5,6,9,7,4,3,1]
>>> min(lst)
1
>>> lst.pop(1)
13
>>> lst
[2, 5, 5, 5, 6, 9, 7, 4, 3, 1]
lst.pop(1)
删除元素#1(第二个元素,因为列表从零开始编号)并返回它。要从列表中删除1,您应该改为这样做,即返回
None
而不是删除的值。您已经删除了该值,因为您首先提供了它


如果要对列表中的最小元素进行多次插入和删除,请考虑使用以使列表“有序地组织”以进行快速插入和删除。

一次中断一次:

>>> lst = [2,13,5,5,5,6,9,7,4,3,1]
>>> min(lst)
1
>>> lst.pop(1)
13
>>> lst
[2, 5, 5, 5, 6, 9, 7, 4, 3, 1]
lst.pop(1)
删除元素#1(第二个元素,因为列表从零开始编号)并返回它。要从列表中删除1,您应该改为这样做,即返回
None
而不是删除的值。您已经删除了该值,因为您首先提供了它


如果要对列表中的最小元素进行多次插入和删除,请考虑使用以保持列表“组织得很好”,用于快速插入和删除。

到POP的参数是索引-不是要删除的实际值。

因此,要“弹出”最小值,您可以执行以下操作:

lst.pop(lst.index(min(lst)))
您可以使用“删除”方法删除给定的值

lst.remove(min(lst))

请注意,remove方法不会返回任何内容

pop的参数是索引-不是要删除的实际值

因此,要“弹出”最小值,您可以执行以下操作:

lst.pop(lst.index(min(lst)))
您可以使用“删除”方法删除给定的值

lst.remove(min(lst))

请注意,remove方法不会返回任何内容

min
确实返回1,但您使用的是什么?
list的
lst.pop
(它以索引作为参数)。pop()
采用索引,而不是要删除的值。13位于列表的索引1处。
lst.pop(lst.index(min(lst))
或只是
lst.sort(reverse=True)
然后
lst.pop()
自动弹出最小的最后一项。您可以反复这样做,不断弹出最小值。从末端弹出最好的地方是它更有效。当您从其他地方弹出时,弹出元素之后的所有元素都必须移动(复制)一个。感谢您的澄清!我使用
pop
作为函数的一部分,从列表中删除最小值,返回没有最小值的列表,而不改变列表。我的理解是,使用
lst.remove
将更改公共列表变量。其中
lst.pop
不会更改函数外部的列表变量。
min
返回1,但是您使用
lst.pop
(以索引为参数)作为什么?
list.pop()
获取索引,不是要删除的值。13位于列表的索引1处。
lst.pop(lst.index(min(lst))
或只是
lst.sort(reverse=True)
然后
lst.pop()
自动弹出最小的最后一项。您可以反复这样做,不断弹出最小值。从末端弹出最好的地方是它更有效。当您从其他地方弹出时,弹出元素之后的所有元素都必须移动(复制)一个。感谢您的澄清!我使用
pop
作为函数的一部分,从列表中删除最小值,返回没有最小值的列表,而不改变列表。我的理解是,使用
lst.remove
将更改公共列表变量。其中
lst.pop
不会更改函数外部的列表变量。