我有一段代码可以正常工作,但我不想一个接一个地打印结果,而是想将它们附加到列表中并返回列表。我尝试了所有我能想到的但都失败了。请帮忙。
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)
我想在将值附加到平均值列表后返回平均值列表,但返回为空列表。
最佳答案
您根本没有附加平均值或返回平均值
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 outer in allprices:
counter = 0
total = 0
for item in outer:
if item != '':
total += item
counter += 1
if counter == 0:
print('')
else:
averages.append(total/counter)
return averages
print(calc_averages())
输出
[1.3199999999999998, 1.3, 1.35, 1.35, 1.5750000000000002]
关于python - 无法返回我想要的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35540764/