Nate_2020 发表于 2021-6-28 16:43:17

python 列表里数据排序求助:

源数据
['X=179.990;Y=43.105;Set','X=77.895;Y=123.991;Set','X=231.395;Y=123.991;Set','X=59.990;Y=43.105;Set','X=154.645;Y=123.991;Set']
要python对以上5行数据依据XY值进行重新排位, 位置是从上到下,从左到右,如下:
(即,Y值大的要排上面, 当Y值相等时,X值小的排左边)
排好后的应该如下:
['X=77.895;Y=123.991;Set','X=154.645;Y=123.991;Set','X=231.395;Y=123.991;Set','X=59.990;Y=43.105;Set','X=179.990;Y=43.105;Set']
帮忙看一下在python中有没有什么好,可靠且简单的方法可以实现?

阿奇_o 发表于 2021-6-28 16:43:18

ls = ['X=179.990;Y=43.105;Set','X=77.895;Y=123.991;Set','X=231.395;Y=123.991;Set','X=59.990;Y=43.105;Set','X=154.645;Y=123.991;Set']

ls.sort(key=lambda x: (-float(x.split(';')), float(x.split(';') )))

print(ls)

Nate_2020 发表于 2021-6-29 08:58:34

原以为key里只能设一个条件,原来可以多个.
页: [1]
查看完整版本: python 列表里数据排序求助: