gpt4 book ai didi

Python 线排序 -

转载 作者:太空宇宙 更新时间:2023-11-04 08:11:36 27 4
gpt4 key购买 nike

我有以下内容:

line  = ['aaaa, 1111, BOB, 7777','aaaa, 1111, BOB, 8888','aaaa, 1111, larry, 7777',,'aaaa, 1111, Steve, 8888','BBBB, 2222, BOB, 7777']

有什么办法可以先按 (Bob,Larry,Steve) 排序,然后按 (1111,2222) 排序?

所以...

for i in line:
i = i.split(' ')
pos1 = i[0]
pos2 = i[1]
pos3 = i[2]
pos4 = i[3]

所以我需要先按 pos3 排序,然后再按 pos2 排序。

期望的输出是:

'aaaa, 1111, BOB, 7777'
'aaaa, 1111, BOB, 8888'
'BBBB, 2222, BOB, 7777'
'aaaa, 1111, larry, 7777'
'aaaa, 1111, Steve, 8888'

最佳答案

将拆分留给关键函数:

sorted(line, key=lambda l: l.lower().split(', ')[2:0:-1])

这将按字典顺序返回 line 中的字符串,不区分大小写。 [2:0:-1] 切片以相反的顺序返回第三列和第二列。

演示:

>>> line  = ['aaaa, 1111, BOB, 7777','aaaa, 1111, BOB, 8888','aaaa, 1111, larry, 7777','aaaa, 1111, Steve, 8888','BBBB, 2222, BOB, 7777']
>>> from pprint import pprint
>>> pprint(sorted(line, key=lambda l: l.lower().split(', ')[2:0:-1]))
['aaaa, 1111, BOB, 7777',
'aaaa, 1111, BOB, 8888',
'BBBB, 2222, BOB, 7777',
'aaaa, 1111, larry, 7777',
'aaaa, 1111, Steve, 8888']

如果您的“行”不是以逗号 + 空格分隔的那么整齐,您可能还需要去掉空格。

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

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