天涯尽头无女友
也许像这样:>>> K[4, 5, 1, 6, 2, 5, 2, 10]>>> sorted(range(len(K)), key=lambda x: K[x])[2, 4, 6, 0, 1, 5, 3, 7]>>> sorted(range(len(K)), key=lambda x: K[x])[-5:][0, 1, 5, 3, 7]或使用numpy,您可以使用argsort:>>> np.argsort(K)[-5:]array([0, 1, 5, 3, 7])argsort 也是一种方法:>>> K = np.array(K)>>> K.argsort()[-5:]array([0, 1, 5, 3, 7])>>> K[K.argsort()[-5:]]array([ 4, 5, 5, 6, 10])
互换的青春
考虑以下代码, N=5 K = [1,10,2,4,5,5,6,2] #store list in tmp to retrieve index tmp=list(K) #sort list so that largest elements are on the far right K.sort() #To get the 5 largest elements print K[-N:] #To get the 5th largest element print K[-N] #get index of the 5th largest element print tmp.index(K[-N])如果您希望忽略重复项,请按以下方式使用set(), N=5 K = [1,10,2,4,5,5,6,2] #store list in tmp to retrieve index tmp=list(K) #sort list so that largest elements are on the far right K.sort() #Putting the list to a set removes duplicates K=set(K) #change K back to list since set does not support indexing K=list(K) #To get the 5 largest elements print K[-N:] #To get the 5th largest element print K[-N] #get index of the 5th largest element print tmp.index(K[-N])希望其中之一可以解决您的问题:)