如何获得列表中的一系列随机数的总和和平均值,通过循环重复?

时间:2018-05-13 06:08:07

标签: python python-3.x

这是我到目前为止所做的:

import random
list1 = []
list2 = []

for i in range(5):
for j in range(3):
    list1.append(random.randrange(1,101))
list2.append(list1)
list1=[]

for i in range(5):
for j in range(3):
    print(list2[i][j],end=",")
print()

有5行,每行有3个随机数。我想找到每行3个数字的总和,以及每行的平均值。但是我不知道我应该怎么做。

3 个答案:

答案 0 :(得分:0)

解决方案是:

import random
list1 = []
list2 = []

for i in range(5):
  for j in range(3):
    list1.append(random.randrange(1,101))
    list2.append(list1)
  list1=[]

data=[(data[0], data[0]/float(data[1])) for data in [(reduce((lambda d, i=0: d+i), data),len(data)) for data in list2]]

data [0]是sum,data [1]是average。

print("Result: {0}".format(data))

答案 1 :(得分:0)

更正了缩进。请尝试以下:

import random
list1 = []
list2 = []

for i in range(5):
  for j in range(3):
    list1.append(random.randrange(1,101))
  list2.append(list1)
  list1=[]

print("List of random nos, sum , average ")
for i in list2:
    print(i, sum(i), sum(i)/len(i))

获得带有随机数的list2后,您可以使用上面的列表项。 sum()得到总和,avg = sum(items)/ total_no_of_items,total_number_of_items可以使用len()函数找到。

答案 2 :(得分:0)

也许这就是你要找的东西:

for _list in list2: #Use _list to avoid name clashes with the built-in function
    for item in _list:
        print(item, end=",") #Print each item in the list

    print(" (Sum: ", sum(_list), " Average: ", (sum(_list)/len(_list)), ")", sep="") 

    #Use sum() and len() to find the average

    print() #End with a new line

示例输出

96,56,35, (Sum: 187 Average: 62.333333333333336)

19,88,83, (Sum: 190 Average: 63.333333333333336)

36,71,41, (Sum: 148 Average: 49.333333333333336)

15,88,13, (Sum: 116 Average: 38.666666666666664)

9,18,62, (Sum: 89 Average: 29.666666666666668)

sum()返回可迭代对象中所有项的总和,len()返回可迭代对象的长度。将列表总和除以列表长度得到列表的平均值。