基于"在Python中用空格分割字符串",它使用shlex.split智能地分割带引号的字符串,我将有兴趣听到非显而易见的标准库函数解决的其他常见任务.
如果这变成了本周的模块,那也没关系.
我很惊讶地发现你可以使用bisect模块在序列中进行非常快速的二进制搜索.它的文档没有说明任何事情:
此模块支持按排序顺序维护列表,而无需在每次插入后对列表进行排序.
用法很简单:
>>> import bisect >>> lst = [4, 7, 10, 23, 25, 100, 103, 201, 333] >>> bisect.bisect_left(lst, 23) 3
但是你必须要记住,在列表中逐个线性地查找某些内容,而不是对列表进行排序,然后对其进行二进制搜索.第一个选项是O(n),第二个选项是O(nlogn).