例如,如果我有一个用户名列表,让我们调用此列表L1,每个用户名都有他/她自己的配置文件(不存储在L1中).我们应该如何编写函数,以便它根据实际名称对用户名进行排序,如果有任何用户名与实际名称相关联,则按用户名对它们进行排序.注意,我可以通过编写用户名[1]来获取用户的用户名,用户名是唯一的.
这就是我写的:
def username(s1, s2):
if s1 < s2:
return -1
elif s1 > s2:
return 1
else:
# How can i sort them by username if they have the same actual name
return 0
最佳答案 您始终可以将用户名存储在列表中,然后使用builtin sorted()函数生成用户名的排序列表.例:
users = ['Guido', 'Alex', 'Jack', 'Brian']
users_sorted = sorted(users)
print repr(users_sorted)
结果将是按字母顺序排序的用户列表:
['Alex', 'Brian', 'Guido', 'Jack']
sorted需要多个参数,所以如果你想定义一种比较列表中项目的特殊方法,你可以做sort(user,cmp = function),其中function是你的特殊比较函数.
有关更多信息,请参阅docs on sorted().