2017-02-21 39 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] 
相关问题