Python 中是否有任何预制的优化工具/库可以对“小于”某个值的列表进行剪切/切片?
问题是:假设我有一个如下列表:
a=[1,3,5,7,9]
我想删除所有的数字<=
6,所以结果列表将是
[7,9]
6不在列表中,所以我不能使用内置的index(6)
列表的方法。我可以做这样的事情:
#!/usr/bin/env python
a = [1, 3, 5, 7, 9]
cut=6
for i in range(len(a)-1, -2, -1):
if a[i] <= cut:
break
b = a[i+1:]
print "Cut list: %s" % b
如果要剪切的索引接近列表的末尾,这将是相当快的方法,但如果该项目接近列表的开头,这将是低效的(比方说,我想删除所有正在删除的项目)>2
,会有很多迭代)。
我还可以使用二分搜索等实现我自己的查找方法,但我想知道是否有一个更广泛的内置库来处理这种类型的事情,我可以在其他情况下重用(例如,如果我需要删除所有的号码>=6
).
先感谢您。
您可以使用对分模块执行排序搜索:
>>> import bisect
>>> a[bisect.bisect_left(a, 6):]
[7, 9]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)