2016-11-28 112 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在您嘗試解析整數中的非整數字符串時引發錯誤,它允許您獲取任何數據並跳過非整數字符串。