1. 数据结构和算法

序列解压:
    x,y=(1,2)
    a,*b=[1,2,3,4,5]
collections.deque,只保留有限个元素的历史记录
    q.append 队尾添加元素
    q.appendleft 队首添加元素
    q.pop 队尾出队
    q.popleft 队首出队

队列两端插入或删除元素的时间复杂度都为O(1) 
列表在开头插入或删除元素的时间复杂度都为O(N) 

获取最大最小的N个元素
    heapq 模块nlargest()和nsmallest()
    可以通过指定key参数接收比较函数来应用到更复杂的数据结构
    内部结构为堆,查找唯一最大最小元素,max/min更快一些,如果N的大小趋近于集合大小sorted(items)[:N]和sorted(items)[-N:]更好一些


    heapq小头堆排序

collections模块 DefaultDict,OrderedDict
    DefaultDict:提供默认值的字典
    OrderedDict:排序的字典,大小会是普通字典的两倍

    字典比较、排序:通过zip和sorted来解决


slice() 创建一个切片对象


collections.Counter
        计数统计,most_commen()
        a+b,a-b集合运算


from operator import itemgetter
    通过关键字对字典排序,速度稍好于lambda表达式
    sorted(users, key=itemgetter('uid'))
from operator import attrgetter
    通过属性对自定义对象排序,速度稍优于lambda表达式


from itertools import groupby
    通过某个属性进行记录分组,必须先对集合按照分组属性进行排序

from itertools import compress
    它以一个 iterable 对象和一个相对应的 Boolean 选择器序列作为输入参数。 然后输出 iterable 对象中对应选择器为 True 的元素    

from collections import namedtuple
    映射名称到序列元素,命名元组

from collections import ChainMap
    接受多个字典并将它们在逻辑上变为一个字典

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值