2013-04-09 68 views
1

因此,我需要編寫和測試一個函數,該函數返回列表中最大元素的索引(或者,如果多個元素具有最大值,它們中第一個的索引)和我不允許使用最大功能。非常感謝幫助!python中最大的列表

def largestElementIndex(lst): 
    x=0 
    maxNum=0 
    while x+1 < len(lst): 
     if lst[x] > maxNum: 
      maxNum=x 
     x+=1 
    return maxNum 

print "Program Output" 
indexOfMax = largestElementIndex([1, 4, 3, 3, 2]) 
print 'Index Of Max Value is',indexOfMax 
+3

此代碼無效嗎? – Blender 2013-04-09 02:06:49

回答

5

你需要存儲的最大數量以及索引:

def largestElementIndex(lst): 
    x=0 
    maxNum=0 
    maxIndex=0 

    while x < len(lst): 
     if lst[x] > maxNum: 
      maxIndex=x 
      maxNum=lst[x] 
     x+=1 
    return maxIndex 

我還用for循環:

def largestElementIndex(lst): 
    max_index = 0 
    max_value = lst[0] 

    for index, value in enumerate(lst) 
     if value > max_value: 
      max_index = index 
      max_value = value 

    return max_index 

要使用max做到這一點,你使用enumerate同樣的方法:

max_index = max(enumerate(lst), key=lambda pair: pair[1])[0] 
+1

第一個版本應該有'while x Jared 2013-04-09 02:12:27

+1

@Jared:謝謝。 – Blender 2013-04-09 02:12:54

1

您也可以使用這種簡單的方法,如果你不希望使用最多的功能:

res = lst.index(sorted(lst)[-1]) 

喝彩!