从python整数列表中删除最大值和最小值

问题描述

| 我对Python并不完全陌生,但是我在发展自己的技能时对学习/保持良好实践感兴趣。 我想从数字列表中删除较高和较低的值,我知道该怎么做,但是我想知道是否有更好/更好的方法可以做到这一点。
mylist = [1,4,3,2]
mylist.sort() #[0,1,2,4]
trimmed = mylist[1:-1] #[1,3]
我得到了想要的答案,但是我得到了正确的答案吗?     

解决方法

如果您不想更改商品的顺序,这是另一种方法:
mylist = [1,4,3,2]
mylist.remove(max(mylist))
mylist.remove(min(mylist))
假设高/低在列表中没有任何重复项,或者如果有重复项,则可以仅删除其中之一。 这将需要进行2-4次遍历列表:两个查找最大值和最小值,最多查找2个要删除的值(如果它们都恰好位于列表的末尾)。您可以通过编写Python循环以一次找到最大值和最小值将其减少为一个(并记住每个索引的索引,以便可以在循环后按索引删除项目)。但是,
min()
max()
是用C实现的,因此即使使用Python代码替换它们也可以减少通过次数,但可能会导致性能降低。