美文网首页python学习指南
Python常用且功能独特的内置函数--持续更新中

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

作者: 生信工具箱 | 来源:发表于2022-06-19 15:58 被阅读0次

    本文是对在内置库中功能很独特的函数的介绍和记载
    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常用且功能独特的内置函数--持续更新中

        本文链接:https://www.haomeiwen.com/subject/gpurvrtx.html