从列表中删除最小的数字

时间:2016-04-24 19:17:16

标签: python python-3.x min

我正在尝试编写一个删除最小数字的函数,然后平均列表中的剩余数字。有没有办法在不使用console.log($rootScope.wg['variable'+1]); sorted()的情况下从列表中删除最低的两个或更多数字?就像使用sort()结合min()一样。

到目前为止我所拥有的:

range()

2 个答案:

答案 0 :(得分:2)

list.remove删除列表中第一个匹配的值。为了删除所有当前最低号码,您必须将其称为list.count(min(list))次。

这是从n移除lst最小数字并且不涉及list.remove的函数:

def remove_n_smallest(lst, n):
    for _ in range(n):
        m = min(lst)
        lst[:] = (x for x in lst if x != m)

以下是您问题中lst的示例:

>>> remove_n_smallest(lst, 2)
>>> lst
[100]
>>> sum(lst) / len(lst)
100.0

答案 1 :(得分:0)

我只是通过循环

运行它
>>> lst = [90,100,95,95]
>>> for i in range(0, 1):            # This removes n=1 items
...     lst.remove(min(lst))
... 
>>> lst
[100, 95, 95]
>>> lst = [90,100,95,95]
>>> for i in range(0, 2):           # This removes n=2 items
...     lst.remove(min(lst))
... 
>>> lst
[100, 95]