失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > python如何输入一个列表并将他升序排列列表_在python中排序并行列表第一项降序 第二

python如何输入一个列表并将他升序排列列表_在python中排序并行列表第一项降序 第二

时间:2023-01-21 02:32:48

相关推荐

python如何输入一个列表并将他升序排列列表_在python中排序并行列表第一项降序 第二

你有两个选择。您可以使用cmp或key作为sorted的参数。在

使用cmp可以定义一个接受两个参数的函数,这两个值将被比较。如果第一个参数小于第二个参数,则返回一个负数。如果它大于秒,则返回一个正数。如果它们相等,则返回0。在

使用cmp的第一个示例:pts = ['2', '2', '2', '2', '2', '0', '0', '0', '0']

teams = ['T Leach', 'M Cameron', 'D Dupuis', 'C Hearder', 'R Pagani',

'J Schutz', 'D Clark', 'B Hunter']

def custom_cmp(x,y):

return cmp(x[0], y[0]) or cmp(y[1], x[1])

pts, teams = zip(*sorted(zip(pts, teams), cmp=custom_cmp, reverse=True))

如果python or运算符的计算结果为True(而不是如上所述的0),那么它将返回左手边。因此,如果这些点不相等,custom_cmp返回从x到{}的点的比较。否则,它将比较y到{}(相反顺序)的团队。在

另一方面,对于key,您只是在考虑如何单独地查看元素,以便python能够自然地理解如何按您想要的方式对元素进行排序。我们知道第一个项目正在进行适当的比较,所以现在我们只需要翻转第二个项目。数字很简单,我们可以接受负数。但是你怎么翻线呢?在

一种方法是获取字符串中每个字符的ord(它应该是字符串的ascii值整数)。然后你可以取这些值的负数并将它们打包成一个tuple。以下是其中一个的样子:

^{pr2}$

使用key的第二个示例:def custom_key(pair):

pts, team = pair

return (pts, tuple(-ord(c) for c in team))

pts, teams = zip(*sorted(zip(pts, teams), key=custom_key, reverse=True))

重新审视编辑:

如果我们要定义一个自定义key,那么我们还可以反转key本身并删除reverse参数:def custom_key(pair):

pts, team = pair

return (-int(pts), team)

pts, teams = zip(*sorted(zip(pts, teams), key=custom_key))

python如何输入一个列表并将他升序排列列表_在python中排序并行列表第一项降序 第二项升序...

如果觉得《python如何输入一个列表并将他升序排列列表_在python中排序并行列表第一项降序 第二》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。