【发布时间】:2016-02-22 04:01:59
【问题描述】:
我有一段代码可以正常工作,但我不想一个接一个地打印结果,而是想将它们附加到一个列表并返回该列表。我尝试了所有我能想到的方法,但都失败了。请帮忙。
def calc_averages():
allprices = [ ['','','', '' ,1.0 ,2.0 ,1.2 ,1.3 ,1.1 , '', '',''],\
['','','' ,1.2 ,1.0 ,2.0 ,1.2 ,1.3 ,1.1 , '', '', ''],\
['','','' ,1.2, '' ,1.8 ,1.3 ,1.1 , '', '', '', ''],\
['','','', '' ,1.0 ,2.0 ,1.2 ,1.2 , '', '', '', ''],\
['','','', '' ,1.0 ,2.0 ,1.1 ,1.2 ,1.4 ,1.8 ,1.9 ,2.2] ]
averages = []
for lst in range(0,12):
counter = 0
total = 0
for item in allprices:
if item[lst] != '':
total = total + item[lst]
counter = counter + 1
if counter == 0:
print('')
else:
print(total/counter)
我想在将值附加到其中后返回平均值列表,但返回为空列表。
【问题讨论】:
-
您应该确保代码中的缩进是正确的,否则无法调试。
-
它实际上并没有返回任何东西。您需要显式返回一个值。否则返回
None -
“我想尽了一切办法”?你说你想将它们附加到一个列表并返回它——你是否尝试过附加到一个列表并返回它?我没有在您的函数中看到任何附加或返回...
-
我知道我以前见过这个:stackoverflow.com/questions/35539493/…
-
它不会返回一个空列表;它返回
None。这个问题和你之前的问题有什么不同,为什么你接受的答案不起作用?
标签: python python-3.x