当前位置:   article > 正文

(python)对于有序列表的高效率操作(官方库)(例如二分查找等)_python 有序列表

python 有序列表

本文针对的是有序的python列表的操作,并且默认是升序的列表。如果你的是降序,只需要逆置列表即可。

import bisect
  • 1
a=[1,2,2,3]#升序列表。
  • 1

插入元素仍然保持有序

bisect.insort(a,4)
  • 1

在这里插入图片描述

二分查找某一个值并返回索引

bisect.bisect_left(a,2)
  • 1

1

bisect.bisect_right(a,2)
  • 1

3

bisect_left()函数的输出是num在list中最左面值的数组下标,bisect_right的输出为最右面的数组下标+1

如果这个值没有在有序列表中,那么返回的是其应当插入的位置。

a=[1,2,2,6]
bisect.bisect_left(a,3)
  • 1
  • 2

4

numpy实现有序列表的二分查找

没想到Numpy也可以实现,如下:

import numpy as np#需要安装这个包,这个包是数据分析里面常用的。
a=[1,2,4,5]
np.searchsorted(a,2)
  • 1
  • 2
  • 3

其返回的是插入位置,最左边的那个位置。

torch实现有序列表的二分查找

没想到pytorch也可以实现,如下:

import torch#需要安装这个包,这个包是深度学习里面常用的。
a=torch.tensor([1,2,4,5])
torch.searchsorted(a,2)
  • 1
  • 2
  • 3

可以看到,其和Numpy是一模一样的。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/177583?site
推荐阅读
相关标签
  

闽ICP备14008679号