列表中所有值的平均值 - 有更多'Pythonic'方法吗?

reg*_*ard 2 python python-3.x

所以我正在关注Python的初学者指南,我得到了这个练习:

创建一个包含0到1000之间100个随机整数的列表(使用迭代,追加和随机模块).编写一个名为的函数 average,将列表作为参数并返回平均值.

我在几分钟内轻松解决了这个问题,但本章还提到了几种遍历列表并将多个值分配给列表和变量的方法,我不确定我是否完全理解,所以我不知道是否可以做到这在较少的线条.这是我的答案:

import random

def createRandList():
    newlist = []
    for i in range(100):
        newint = random.randrange(0,1001)
        newlist.append(newint)
    return newlist

def average(aList):
    totalitems = 0
    totalvalue = 0
    for item in aList:
        intitem = int(item)
        totalitems = totalitems + 1
        totalvalue = totalvalue + intitem
    averagevalue = totalvalue/totalitems
    return averagevalue

myList = createRandList()
listAverage = average(myList)

print(myList)
print(listAverage)
Run Code Online (Sandbox Code Playgroud)

提前致谢!

jay*_*elm 9

使用Python的内置sumlen功能:

print(sum(myList)/len(myList))
Run Code Online (Sandbox Code Playgroud)

  • 而createRandList可以表示为```[random.randrange(0,1001)for i in range(100)]``` (3认同)
  • 此外,Python变量通常是lower_case_with_underscores而不是mixedCase.my_list而不是myList. (3认同)