关于python数组比较
故事背景
今天在用python自带的库heapq做堆排序的时候遇到了一个问题,在heapq中初始化堆列表heapq.heapify(arr)
的时候由于arr
是个二维数组[[1,3],[5,7],[9,6]]
我想让这个函数根据每个元素里面的第二个元素为key来做排序,但是heapq.heapify(arr)
又没有key参数。
深究细节
在我们平常对两个数组的做判断的时候用得最多的时候就是==
和!=
但是大家可能忽略了个问题,其实数组也是可以用>
和<
做比较的,比如……
1 |
|
1 |
|
相信大家看到这里已经看出来数组的比较规则了,就是第一个元素深度优先找到最底层非容器元素然后进行比较,但是这以上的前提是这两个数组的维度(ndim)
是相同的。如果不相同则会报错。
1 |
|
所以在使用heapify(arr)
的时候把要比较的元素放在第一位就好了[[3,1],[7,5],[6,9]]
祝大家新年快乐🐰🐰🐰
关于python数组比较
http://showarp.github.io/2023/01/24/关于python数组比较/