Python在列表中的元组中查找max,average,min和add up值

时间:2013-05-01 06:23:36

标签: python while-loop tuples

我需要创建一个函数,它接收一个元组列表,然后输出每个tupple中的总最高,最低,平均和总数。

例如: 这就是它所需要的:

([(99,86,70,7),(100, 96, 65, 10), (50, 40, 29, 11)]) 

我需要一个在每个元组中获取最高int的函数,但仅在index [0]处。然后需要在索引[1]处将数字平均在一起,然后在索引[2]处找到最低的int,然后将每个tupple的最后一个索引中的值相加。

所以输出看起来像这样:

(100, 74, 29, 28) 

这就是我现在所拥有的。它的完全错误和愚蠢,我发现元组非常令人困惑。我正在尝试仅使用 while / for循环,但我只是对元组和列表感到困惑。

def grades(listt):
    count=0
    while count < len(listt):
        x=();
        for i in range(0, len(listt)):
            x(listt(0[count])) > x(listt(i[count]))
            print x[count]

print grades([(99,86,70,7),(100, 96, 65, 10), (50, 40, 29, 11)]) 

2 个答案:

答案 0 :(得分:4)

def grades(alist):
    highest, average, lowest, sumvalues = alist[0]
    for i in alist[1:]:
        if i[0] > highest: highest = i[0]
        average += i[1]
        if i[2] < lowest: lowest = i[2]
        sumvalues += i[3]
    average = average / len(alist)
    return highest, average, lowest, sumvalues

答案 1 :(得分:4)

列表:

grades = [(99,86,70,7),(100, 96, 65, 10), (50, 40, 29, 11)]

你会这样做:

toFindHighest, toFindAverage, toFindLowest, toFindSum = zip(*grades)

highest = max(toFindHighest)
average = sum(toFindAverage) / float(len(toFindAverage))
lowest = min(toFindLowest)
total = sum(toFindSum)