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

标签 python list max min

我对 Python 并不完全陌生,但我有兴趣在发展自己的技能的同时学习/保持良好实践。

我想从数字列表中删除高值和低值,我知道该怎么做,但我很好奇是否有更好/首选的方法来做到这一点。

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

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

最佳答案

如果您不想更改项目的顺序,还有另一种方法:

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

假设高/低在列表中没有任何重复,或者如果有,只删除其中一个是可以的。

这将需要执行 2-4 次遍历列表:两次查找最大值和最小值,最多 2 次查找要删除的值(如果它们都恰好位于列表的末尾)。您可以通过编写 Python 循环以在单次通过中找到最大值和最小值来将其减少到一个(并记住每个的索引,以便您可以在循环后按索引删除项目)。但是,min()max() 是用 C 实现的,所以用 Python 代码替换它们可能会导致性能下降,即使它允许您减少数量通过。

关于python - 从 python 整数列表中删除最大值和最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5656670/

相关文章:

python - Django find_each(如 RoR)

git - 概述列表 - 最常用的 git 命令

python - 区间优化搜索

Python比较2个大小列表增加的Pythonic方法是什么?

Python - 循环遍历列表并在替换之前保存状态

datetime - 防止 Max 函数使用时间戳作为 PL/SQL 中日期列的条件的一部分

php - 如何获取 php 数组中的前 3 个值及其索引

php - 如何在php中从sql中获取最大值

python - 二维数组上的 numpy 逻辑运算

python - np.在新维度中连接 numpy.ndarray 列表?