Python中常见算法技巧库

1、对有序数对进行插入(bisect)

bisect.bisect_left(list,x): 在list中插入x以保证list仍然有序,返回这个x的插入点的index,如果x出现在list中,则返回x第一次出现的左侧index bisect.bisect_right(list,x): 在list中插入x以保证list仍然有序,返回这个x的插入点的index,如果x出现在list中,则返回x第一次出现的右侧index
import bisect
bisect.bisect_left([1,7,7,8,10],7)
返回:1
bisect.bisect_right([1,7,7,8,10],7)
返回:3

2、字典自带默认类别(collections)

defaultdict(list):代表创建一个字典,并且具有默认的value的结构为list.

from collections import defaultdict
b = defaultdict(list)
b["第一个"] = '一个字符串'
b["第二个"].append(1)
b
defaultdict(list, {'第一个': '一个字符串', '第二个': [1]})

我们可以看到就算我们没有先创建一个叫做"第二个"的这个键,但是我们仍能直接使用.append(),因为字典会默认创建一个值为list的键值对。

 

上一篇:python defaultdict详解


下一篇:collection模块里的defaultdict