从python整数列表中删除Max和Min值

2024-05-09 16:30:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我对Python并不完全熟悉,但我对学习/保持良好的实践感兴趣,同时我也在发展我的技能。

我想从数字列表中删除高值和低值,我知道该怎么做,但我想知道是否有更好/更可取的方法来做这件事。

mylist = [1, 4, 0, 3, 2]
mylist.sort() #[0, 1, 2, 3, 4]
trimmed = mylist[1:-1] #[1, 2, 3]

我得到了想要的答案,但我得到了正确的答案吗?


Tags: 方法答案列表技能数字sort感兴趣mylist
1条回答
网友
1楼 · 发布于 2024-05-09 16:30:28

如果您不想更改项目的顺序,下面是另一种方法:

mylist = [1, 4, 0, 3, 2]
mylist.remove(max(mylist))
mylist.remove(min(mylist))

假设high/low在列表中没有任何重复项,或者如果有,可以只删除其中一个。

这将需要2-4次遍历列表:2次查找最大值和最小值,最多2次查找要删除的值(如果它们恰好都在列表的末尾)。您可以通过编写一个Python循环来将其减少为一个,以便在一次传递中找到max和min(并记住每个传递的索引,以便可以在循环之后按索引删除项)。但是,min()max()是用C实现的,因此用Python代码替换它们可能会导致更低的性能,即使这样可以减少传递次数。

相关问题 更多 >