循环并取出价值

时间:2016-02-22 12:52:00

标签: python

enter image description here

lists = [[100.0,90.0],[52.0,75.0,45.0,20.0],[12.0,43.0,55.0]]
def printAverages(lists):
    for values in lists:
        print(values)
        row(values)



def row(values):
    num = 0
    for numbers in values:
        if numbers == min(values):
            values.remove(numbers)
        else:
            num += numbers
    print(num)

它出现以下内容,

[100.0, 90.0]

100.0

[52.0, 75.0, 45.0, 20.0]

172.0

[12.0, 43.0, 55.0]

55.0

我试图删除最小的值并将其余的值加在一起,但似乎我离开了。有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:0)

平均值=观察总和/观察总数。那是你错的地方。

此外,我删除了从代码中删除列表中最小数字的if部分。你为什么这样?在这种情况下不需要它。

编辑:我在您发布的图片中添加了一个示例,以验证此代码是否正确。

lists = [[100.0,90.0],[52.0,75.0,45.0,20.0],[12.0,43.0,55.0],[80.0, 75.0, 70.0, 65.0, 5.0]]
def printAverages(lists):
    for values in lists:
        print(values)
        row(values)

def row(values):
    num = 0
    observations = 0
    for number in values:
        if number != min(values):
            num += number
            observations += 1
    print(num / observations)

printAverages(lists)

上一个列表[80.0, 75.0, 70.0, 65.0, 5.0]的结果(从您提供的图片中复制而来)是72.5 - 与图片一样。

如果你想从列表中删除最小的值,然后打印没有那个最小值的列表,那么你必须将print命令从函数printAverages(lists)移动到函数{{1 }}

代码将是这样的:

row(values)