所以我正在按照初学者的Python指南进行练习:
创建一个包含0到1000之间100个随机整数的列表(使用 迭代,追加和随机模块)。写一个叫做的函数
average
将列表作为参数并返回平均值。
我在几分钟内就轻松解决了问题,但是chapter还提到了几种遍历列表的方法,并为列表和变量分配了多个值,我不确定我是否完全理解,所以我不知道我知道是否可以用更少的线来做到这一点。这是我的答案:
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)
提前致谢!
答案 0 :(得分:9)
使用Python的内置sum
和len
函数:
print(sum(myList)/len(myList))
答案 1 :(得分:1)
我同意上述有关使用sum
的建议。
虽然我不喜欢使用列表理解来运行固定数量的迭代,但您的createRandList
函数体可能只是:
return [random.randint(0,1000) for i in range(100)]
(另外,我发现randint
更具可读性,因为“停止”值是您想要的值,而不是您想要的值+ 1.)
在任何情况下,您都可以省略在数字上调用int()
的行 - randrange
的输出已经是int。