我有一個(gè)清單[('a',2),('h',5),('c',3),('h',4)]。我想以每個(gè)元組的第一個(gè)條目按升序排列的方式對(duì)其進(jìn)行排序。如果有重復(fù),則根據(jù) Python 中降序排列的第二個(gè)元組條目。我想得到這個(gè):[('a',2),('c',3),('h',5),('h',4)]
1 回答

烙印99
TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超13個(gè)贊
由于元組中的第二個(gè)元素是數(shù)字(因此一元運(yùn)算-符的有效操作數(shù)),您可以使用這個(gè)簡(jiǎn)單的鍵函數(shù):
lst = [('a', 2), ('h', 5), ('c', 3), ('h', 4)]
sorted(lst, key=lambda x: (x[0], -x[1]))
# [('a', 2), ('c', 3), ('h', 5), ('h', 4)]
添加回答
舉報(bào)
0/150
提交
取消