本文是对在内置库中功能很独特的函数的介绍和记载
Python官方文档
Random库
import random
-
uniform
随机生成范围内的浮点数
result = random.uniform(1,3)
print("result: ",result) #1.1828549344931325
itertools库
import itertools
-
pairwise
pairwise是python3.10
版本中才有的,在3.10之前都是以tee为原型,该函数可以提取出一个数组中相邻一组位置的元素,该函数适用于当目标列表需要生成时使用,可节省许多迭代步骤中的代码从而大大提高效率
def pairwise(iterable):
a, b = itertools.tee(iterable)
next(b, None)
return zip(a, b)
# pairwise('ABCDEFG') --> AB BC CD DE EF FG
collections库
import collections
-
Counter
defaultdict
是内置dict
类的子类,用于计数可哈希对象。它是一个集合,元素像字典键(key)一样存储,它们的计数存储为值
cnt = collections.Counter()
for word in ['red', 'blue', 'red', 'green', 'blue', 'blue']:
cnt[word] += 1
print(cnt)
# Counter({'blue': 3, 'red': 2, 'green': 1})
-
defaultdict
defaultdict
是内置dict
类的子类,和dict不同的是当每个键第一次遇见时,它还没有在字典里面,所以自动创建该条目,即调用default_factory
方法,返回一个空的list
,如果使用普通的dict
方法则会产生KeyError
的错误,代码参考如下
s = [('yellow', 1), ('blue', 2), ('yellow', 3), ('blue', 4), ('red', 1)]
d = collections.defaultdict(list) # if use dict will make a Error
for k, v in s:
d[k].append(v)
sorted(d.items())
#[('blue', [2, 4]), ('red', [1]), ('yellow', [1, 3])]
经常使用的还是设置 default_factory
为 set
使 defaultdict
用于构建 set 集合
s = [('red', 1), ('blue', 2), ('red', 3), ('blue', 4), ('red', 1), ('blue', 4)]
d = collections.defaultdict(set)
for k, v in s:
d[k].add(v)
sorted(d.items())
# [('blue', {2, 4}), ('red', {1, 3})]
当然也可以设置 default_factory
为 int
,使 defaultdict
用于计数
s = 'mississippi'
d = collections.defaultdict(int)
for k in s:
d[k] += 1
sorted(d.items())
# [('i', 4), ('m', 1), ('p', 2), ('s', 4)]
网友评论