Python常用且功能独特的内置函数--持续更新中

本文是对在内置库中功能很独特的函数的介绍和记载
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_factoryset 使 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_factoryint,使 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)]

你可能感兴趣的:(Python常用且功能独特的内置函数--持续更新中)