python – 使用用户定义的规则对项目进行排序

例如,如果我有一个用户名列表,让我们调用此列表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().

点赞