2014-11-05 31 views
0

我試圖從列表中的位置1和位置2中找到最大數字並將其返回列表中的位置5。試過這個,但只是說列表索引超出範圍。任何幫助讚賞。列表中的最大數字並追加

for i in range(0, len(sort)): 
    if sort[i][2] > sort[i][1]: 
     sort[i][2] = sort[i][1] 
    sort[i][2].append 
print(sort[i][5]) 
+2

你的意思是*將它返回到列表中的位置5 *? – Kasramvd 2014-11-05 22:53:07

+2

你可以粘貼'sort'的定義嗎? – Celeo 2014-11-05 22:53:37

+0

對不起。我的意思是存儲位置5中的最高分。我已經有位置4中的數據,所以追加它也將起作用。謝謝 – learningpython 2014-11-05 22:57:32

回答

0

已經指出的代碼有幾個問題。

  • 追加需要
  • 它需要某種號召[I],而不是某種[I] [2]
  • print語句必須是內部的循環,因爲一旦被用括號稱爲for循環完成後,我等於LEN(排序),所以排序[I]將引發指數超出範圍的錯誤

考慮這個:

for i in range(len(sort)): 
    sort[i].append(max(sort[i][1], sort[i][2])) 
    print(sort[i][-1]) 

如果您確定這是最後一個索引,您可以打印排序[i] [5]而不是排序[i] [ - 1]。

+0

它不?問題是「從位置1和位置2查找最大數字,然後將該數字追加到下一個可用位置」。這就是我的解決方案。 – linus 2014-11-06 00:22:14

+0

您可以通過將該評論添加到答案中來解答您的問題。 – jgritty 2014-11-06 01:35:44

+0

夠公平的。編輯。 – linus 2014-11-06 02:00:34