python3-cookbook 学习笔记(一)

一、数据结构与算法

序列操作:

  • 序列解包占位符:_   
    • 占位需要丢弃的值
  • 解包可迭代对象:*   
    • 产生一个列表对象,解压不确定个数或任意个数的可迭代对象时使用
    • 想要解压后丢弃的值可使用*_或*ign(ignore)
  • 命名切片:
    • slice()    创建切片对象
      • 属性:start、stop、step
      • 方法:indices(size)    映射到一个已知大小序列上,返回一个三元组(start,stop,step)
  • 过滤序列元素:
    • 列表推导式
    • filter(function,iterable)    创建一个迭代器

字典运算:

  • 字典上执行数学运算仅作用于键,可以使用zip()反转键值
  • 字典的keys()方法返回的键视图对象和items()方法返回的元素视图对象支持集合操作
    • a.keys() & b.keys() 
      a.keys() - b.keys() 

collections模块:

  • collections.deque([iterable[, maxlen=N]])    创建双向队列,设置maxlen参数时创建固定大小的队列(实现优先级队列)
  • collections.defaultdict([default_factory[, ...]])    自动为将要访问的键创建映射实体(实现创建多值映射字典)
  • collection.OrderedDict([items])    迭代操作时保持元素被插入时的顺序(实现字典排序)
  • collections.Counter(hashable)    生成一个字典对象,将元素映射到它出现的次数上(制表或者计数数据)   
    • most_common(n)    找出出现频率最高的单词     
  • collections.namedtuple()    构建带字段名的元组,具名元组不可更改
    • _replace()    更新实例
  • collections.ChainMap()    接受多个字典并将它们在逻辑上变为一个字典,该方法使用原来的字典(合并多个字典或映射)

heapq模块:

  • heap[0]    永远是最小的元素
  • heapq.nlargest(n, iterable[, key])    从一个集合中获取最大的N个元素列表
  • heapq.nsmallest(n, iterable[, key])   从一个集合中获取最小的N个元素列表
  • heapq.heapop()    将第一个元素弹出来,然后用下一个最小的元素来取代被弹出的元素
  • heapq.heappush()    在队列上插入第一个元素

operator模块:

  • operator.itemgetter(item)    通过某个或某几个关键字来排序字典
  • operator.attrgetter(attr)    排序不支持原生比较的对象

itertools模块:

  • itertools.groupby(iterablekey=None)    把迭代器中相邻的重复元素挑出来放在一起(使用前需要先排序)
  • itertools.compress(iterable,Boolean)    输出iterable对象中对应选择器为True的元素(使用另一个关联的序列来过滤某个序列)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值