• 第3.5章 数据结构与算法——CookBook笔记


    序列分解为单个变量:解包

    可迭代对象就可以执行分解

    字符串,文件,迭代器,生成器

    _丢弃值

    分解值过多(未知):*表达式

    *用于迭代变长元组序列

    保存最后n个元素:

    保存有限历史记录

    collections.deque

    编写搜索某项记录的代码,用yield生成器函数

    处理搜索的代码与使用搜索结果的代码 解耦合

    指定长度deque:自动移除最老的记录

    无限队列:双端

    找到最大最小n个元素

    heapq

    nlargest nsmallest

    可接受参数'key',对付更复杂的数据结构 

    随着n变大

    min,max

    nlargest nsmallest

    sort 切片

    实现优先队列

    heapq:引入额外的索引

    一键多值字典:

    值:列表,集合

    defaultdict(list/set)

    自己模拟,会有混乱代码

    检测键是否存在

      值初始化为空列表

      append

    字典保存有序

    OrderedDict 保持元素添加序

    双向链表,两倍空间

    字典有关的计算问题

    构建(value,key)相反元组

    zip打包

    传递给min max sorted

    zip创建的是迭代器

    #迭代器:遍历的提前结束

    字典默认操作是基于key的

    复合语义:寻找值,与其对应的key

    打包比较,返回的是两个关键字的比较结果

    两个字典寻找相同点

    keys items

    集合运算

    可用于过滤键

    value不满足集合定义,需先转换为集合

    移除序列重复项,保持顺序不变

    值可哈希

    集合+生成器

    不可哈希:序列

    指定hash函数key

    可哈希对象:生存期内不可变,有一个__hash__方法:整数,浮点数,字符串,元组

    不可哈希列表可不可以直接调用set?指定key?

    对切片命名

    避免硬编码索引

    slice()切片对象

    属性:start,stop,step

    indices(size)

    切片映射到特定大小的序列,返回(start,stop,step)

    保持步长,自动生成边界??

    序列中出现次数最多的元素

    collections模块 counter类(传入可哈希对象)

    most_common()方法

    手动增加计数 update

    重载了+-

    通过公共关键字对字典列表排序

    operator函数 itemgetter函数

    提取关键字

    sorted关键字参数key,表示可调用对象,返回排序依据的值

    不原生支持比较

    lamda u:u.id

    operator.attrgetter快,允许提取多个值

    根据字段将记录分组

    itertools.groupby,返回值与一个迭代器

    扫描出序列中的相同值的序列项

    需要事先排序

    分组,随机访问:多值字典

    defaultdict

    筛选序列中元素

    [列表推导式]

    (生成器表达式)

    filter:返回迭代器

    替换值:条件表达式

    compress,布尔元素迭代器

    从字典提取子集

    字典推导式,效率

    名称映射到序列中元素

    命名元组

    collections.namedtuple

    将代码与控制的元素解耦

    相对于字典:空间效率

    _replace修改属性,创建并返回全新元组

    高效,支持修改属性:__slots__属性的类

    数据转换+换算

    生成器表达式

    生成器表达式作为函数的唯一参数,不必重复使用括号

    不需要临时列表,内存优化

    合并多个映射

    collections模块ChainMap类

    维护映射关系的列表

    引用模型

    new_child

    字典update

    值模型

  • 相关阅读:
    Docker Compose实例
    Jenkins远程执行shell出现java: command not found
    SpringBoot之导入导出Excel
    在Jenkins中配置执行远程shell命令
    XJar: Spring-Boot JAR 包加/解密工具,避免源码泄露以及反编译
    Elasticsearch集成ik分词器
    AAAAAA
    Logstash-安装logstash-filter-multiline插件(解决logstash匹配多行日志)
    Elastic Kibana文档
    failed to create rwlayer: lstat /var/lib/docker/overlay2/ no such file or directory
  • 原文地址:https://www.cnblogs.com/qmcj/p/9148865.html
Copyright © 2020-2023  润新知