创建好的代码,输出如下表:
[[' ' ' Scarface ' ' Godfather' ' Avatar']
['Al Pachino ' ' 1' ' 1' ' -1']
['Marlon Brando ' ' -1' ' 1' ' -1']
['De Niro ' ' -1' ' 1' ' -1']
['Sigorny Weaver' ' -1' ' -1' ' 1']]
如何通过编写一个函数来获得表列的平均值,该函数的参数是整数A和正整数i的表。该函数应返回A列i的非负条目的平均值。
我想用最简单易读的代码执行此操作,稍后我可以向孩子们解释。
谢谢Jemma
答案 0 :(得分:2)
使用公式<ONLY-POSITIVE-VALUES> / <ALL-INTEGER-COLUMS>
data = [
[' ', ' Scarface ', ' Godfather', ' Avatar'],
['Al Pachino ', ' 1', ' 1', ' -1'],
['Marlon Brando ', ' -1', ' 1', ' -1'],
['De Niro ', ' -1', ' 1', ' -1'],
['Sigorny Weaver', ' -1', ' -1', ' 1']
]
def compute_average(row):
average = 0
count = 0
for column in row:
count += 1
try:
value = int(column)
except ValueError:
continue
if value > 0:
average += value
return float(average) / count
for row in data[1:]:
print compute_average(row)
如果您需要<ONLY-POSITIVE-VALUES> / <ALL-POSITIVE-VALUES-COLUMS>
之类的公式,只需将count += 1
行从for
循环顶部移至if value > 0
语句。
try
/ except
部分只是因为当您尝试解析整数中的非整数字符串时Python引发错误,它允许您获取任何数据并且只是跳过非整数数据。