2017-02-21 48 views
0

我想編寫一個函數,在指數通過調用它的元素之一的元組

  1. 需要的元組與人的社交聚會常客的名字和他們的優先級和
  2. 最大數的列表,可以得到它。我目前正在嘗試根據元素之一以升序排列元組。

我有一個列表或元組:

alist =[('Carlos', 1), ('Gretchen', 8), ('Abby', 6),('Sam', 4)] 

到目前爲止,香港專業教育學院,以取得所有號碼的列表與此代碼:

def party_time(alist,maxnum): 
    newlist = [] 
    finallist=[] 
    while len(finallist) < maxnum: 
     for tup in alist: 
      rank = tup[1] 
      newlist.append(rank) 
     newlist.sort() 

newlist = [1,4,6,8] 

是否有使用方法for循環通過newlist並使用newlist中的數字索引元組?或者只是索引中的這個元組?

+4

'排序(ALIST,鍵=拉姆達X:X [1])'應該把你的項目進行排序。您可能也需要反轉。 – sberry

+0

可能重複[按多個屬性對列表進行排序?](http://stackoverflow.com/questions/4233476/sort-a-list-by-multiple-attributes) –

+0

另請注意,您的代碼會進入無限循環。 –

回答

0

這應做到:

def party_time(alist, maxnum): 
    sorted_list = sorted(alist, key=lambda p: p[1], reverse=True) 
    return sorted_list[:maxnum] 
相關問題