1. 程式人生 > 其它 >Python 自定義排序(一維二維)

Python 自定義排序(一維二維)

1. 描述

Python給定的sort函式是針對一維陣列的,那麼那麼怎麼自定義降序排序?

那資料是二維度的時候怎麼處理,比如說,給你一個二位陣列:

[[30, 50], [12, 2], [3, 4], [12, 15]]

需要按照第一維度升序排序,若第一維度相同,第二維度降序排序,怎麼實現了。

無需擔心,下面已經給你實現好了。

2. Code實現

 1 #!/usr/bin/env python
 2 # _*_ coding: utf-8 _*_
 3 # @Time : 2021/8/20 19:16
 4 # @Author : hfw
 5 # @Version:V 0.1
 6 # @File : my_sort.py
7 # @desc : 自定義排序(一維二維) 8 import functools 9 10 11 class Solution: 12 # 一維排序 13 def one_dim(self, x, y): 14 # x - y > 0: 降序排序 15 return y - x 16 17 # 二位排序 18 # 第一維度升序排序 19 # 第二維度:若第一維度相等,第二維度降序排序 20 def two_dim(self, x, y): 21 if x[0] != y[0]: 22 return
x[0] - y[0] 23 else: 24 return y[1] - x[1] 25 26 def my_sort(self, nums, dim = 1): 27 if dim == 1: 28 nums.sort(key=functools.cmp_to_key(self.one_dim)) 29 elif dim == 2: 30 nums.sort(key=functools.cmp_to_key(self.two_dim)) 31 return
nums 32 33 34 if __name__ == '__main__': 35 # 一維資料 36 nums = [5, 4, 6, 7, 3, 2, 2, 5, 9, 8, 1] 37 print(Solution().my_sort(nums, dim=1)) 38 nums = [[30, 50], [12, 2], [3, 4], [12, 15]] 39 print(Solution().my_sort(nums, dim=2))

執行結果:

[1, 2, 2, 3, 4, 5, 5, 6, 7, 8, 9]
[[3, 4], [12, 15], [12, 2], [30, 50]]

3. 結語

  努力去愛周圍的每一個人,付出,不一定有收穫,但是不付出就一定沒有收穫! 給街頭賣藝的人零錢,不和深夜還在擺攤的小販討價還價。願我的部落格對你有所幫助(*^▽^*)(*^▽^*)!

  如果客官喜歡小生的園子,記得關注小生喲,小生會持續更新(#^.^#)(#^.^#)。

但行好事 莫問前程