2016-11-28 91 views
0
创建

好的代码输出像这样的表:平均表列的

[['    ' '  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的非负项的平均值。

我想用最简单的可读代码来做这件事,稍后我会向孩子们解释。

感谢杰马

+0

你尝试过什么吗?你的代码在哪里? – Godiez

+0

你能提供一个完整的例子(使用你的表的数据)你想要什么? –

+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>for循环的顶端到if value > 0声明移动count += 1线得到的平均水平。

try/except部分是因为Python在您尝试解析整数中的非整数字符串时引发错误,它允许您获取任何数据并跳过非整数字符串。