gpt4 book ai didi

Python 排序问题

转载 作者:太空宇宙 更新时间:2023-11-03 13:53:02 25 4
gpt4 key购买 nike

我需要在 Python 中对以下元组列表进行排序:

ListOfTuples = [('10', '2010 Jan 1;', 'Rapoport AM', 'Role of antiepileptic drugs as preventive agents for migraine', '20030417'), ('21', '2009 Nov;', 'Johannessen SI', 'Antiepilepticdrugs in epilepsy and other disorders--a population-based study of prescriptions', '19679449'),...]

我的目的是按降序年份(listOfTuples[2])和升序作者(listOfTuples[2])排序:

sorted(result, key = lambda item: (item[1], item[2]))

但它不起作用。我怎样才能获得排序稳定性?

最佳答案

def descyear_ascauth(atup):
datestr = atup[1]
authstr = atup[2]
year = int(datestr.split(None, 1)[0])
return -year, authstr

... sorted(result, key=descyear_ascauth) ...

注意:您需要将年份提取为整数(而不是字符串),以便您可以更改其符号 - - 后者是满足规范“下降”部分的关键技巧。将它全部压缩在 lambda 中是可能的,但绝对没有理由这样做并牺牲更多的可读性,因为 def 也能正常工作(甚至更多可读)。

关于Python 排序问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3325574/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com