【发布时间】:2011-05-16 16:35:52
【问题描述】:
假设我有一个字典:d = {'Abc':5,'Jack':4,'amy':9,'Tom':0,'abc':5}
如果我想编写一个函数,如果我将该函数传递给内置的排序函数,例如。 list(d).sort(function),排序函数将根据值对列表进行排序,任何具有相同值的,按它们的键排序(字母顺序)。因此,在这种情况下,d = {'Abc':5,'Jack':4,'amy':9,'Tom':0,'abc':5,'TAM':0} 返回 ['amy' ,'Abc','abc','杰克','TAM','汤姆'] 该函数应如下所示:
def arrange_items(something, thing,**may be a function**):
if something < thing:
return -1
elif something > thing:
return 1
etc
如果我调用 some_list.sort(arrange_items),我应该得到一个排序列表
提前谢谢你
规范的修改(另一个问题): 如果我有 twitter 用户名的字典,则字典格式如下:
dict = {'JohnZ':{'name': Jonny Zue,'follow':'MiniT',}, etc} # JohnZ is one of the twitter user. The follow means people that JonhZ follows, in this case it is MiniT.
一个用户的人气是指关注这个特定用户的人数,在上面的例子中,MiniT 的人气至少是一个 b/c 至少有一个用户关注 MiniT。
假设我有一个 twitter 用户名列表,比如 L1 = ['JonhZ','MiniT',etc],我想根据用户的受欢迎程度对 L1 进行排序(首先是较高的受欢迎程度)。 全局命名空间中已经定义了dict(我们可以直接访问dict)。这个排序函数的要求是使用L1.sort(pass_function) 我应该如何编写 pass_function 以便 sort 会根据用户的受欢迎程度自动对 L1 进行排序。
感谢您的帮助
【问题讨论】:
标签: python list sorting dictionary