gpt4 book ai didi

python - 使用python zip函数将两个列表排序在一起

转载 作者:行者123 更新时间:2023-12-04 15:24:13 25 4
gpt4 key购买 nike

我的问题与将两个列表一起排序的基本问题有点不同。

例如看这段代码:

list1=[3,4,2,1,6,1,4,9,3,5,8]
list2=['zombie','agatha','young','old','later','world',
'corona','nation','domain','issue','happy']
srt=sorted(list(zip(list1,list2)),reverse=True)
print(srt)

输出结果为:

[(9, 'nation'), (8, 'happy'), (6, 'later'), (5, 'issue'), 
(4, 'corona'), (4, 'agatha'), (3, 'zombie'), (3, 'domain'),
(2, 'young'), (1, 'world'), (1, 'old')]

问题:- 正如我们所见,对于列表 1 中相同的值,我的列表 2 中的元素也按字母降序排列。如果我想按降序对列表 1 进行排序,然后按升序对列表 2 的元素进行排序,其中列表 1 的元素的值相同,以某种简单的方式怎么办。

最佳答案

使用键函数lambda k: (-k[0], k[1])):

list1 = [3, 4, 2, 1, 6, 1, 4, 9, 3, 5, 8]
list2 = ['zombie', 'agatha', 'young', 'old', 'later', 'world', 'corona', 'nation', 'domain', 'issue', 'happy']
srt = sorted(zip(list1, list2), key=lambda k: (-k[0], k[1]))
print(srt)

打印:

[(9, 'nation'), (8, 'happy'), (6, 'later'), (5, 'issue'), (4, 'agatha'), (4, 'corona'), (3, 'domain'), (3, 'zombie'), (2, 'young'), (1, 'old'), (1, 'world')]

关于python - 使用python zip函数将两个列表排序在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62643511/

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