python序列结构

列表

  • 包含若干元素的有序连续内存空间。
  • 增加或删除元素时,列表对象自动进行内存的扩展或收缩。
  • 插入或删除非尾部元素时涉及到列表中大量元素的移动,严重影响效率。
  • 插入或删除非尾部元素时会改变该位置后面元素在列表中的索引。
  • 应尽量在列表尾部进行元素的追加与删除。
  • 所有元素放在[]中,用,分隔。
  • 同一个列表中的元素的数据类型可各不相同。
  • 尽量避免过多使用列表。
  • 可以使用list()函数把元组,range对象,字符串,字典,集合或其他可迭代对象转换为列表。
列表元素访问
  • 整数作为下标
    0:第一个
    -1:最后一个
列表常用方法
  • append(),insert(),extend()
  • pop(),remove(),clear()
  • count(),index()
  • sort(),reverse()
列表对象支持的运算符



列表推导式
  • 快速生成满足特定需求的列表
  • 在逻辑上等价于一个循环语句
切片
  • 形式:[start🔚step]
    start默认为0
    end表示截止(但不包括)位置(默认为列表长度)
    step表示步长(默认为1)
    三个参数取值为默认值时可以省略
    step为负整数时,表示反向切片,这时start应在end右侧

  • 使用切片获取列表部分元素
    返回新列表。
    与使用索引作为下标访问列表元素不同,切片不会因下标越界而抛出异常,而是在尾部截断或返回空列表。

  • 使用切片为列表增加元素
    原地操作。

  • 使用切片替换或修改列表的元素

  • 使用切片删除列表中的元素

元组:轻量级列表

形式:元素放在()中,如果元组中只有一个元素则必须在最后加一个逗号。

  • 元组是不可变的。
  • 和列表一样,都是有序序列。
  • 访问速度比列表更快。
生成器推导式:

与列表推导式相似,不过结果是一个生成器对象。
惰性求值。?


字典

包含若干‘键:值’元素的无序可变序列,所有的元素放在{}中。
键可以是任意不可变数据,不允许重复。

字典创建与删除

字典元素访问
  • 根据提供的键作为下标就可以访问对应的值,不存在则会抛出异常。
  • get()方法返回指定‘键’对应的‘值’,并允许键不存在时返回指定的默认值。
aDict.get('address','No EXITS').
  • items()方法返回键值对
  • keys()方法返回键
  • values()方法返回值
元素添加、修改与删除

标准库collections中与字典相关的类
  • OrderedDict类
  • defaultdict类
    所有值默认为0
  • Counter类

集合

无序可变序列,使用大括号作为定界符,元素之间不允许重复。
只能包含不可变类型的数据

集合对象的创建与删除
  • set()
集合操作,集合运算
  • 元素的增加与删除
    add():如果元素存在,则忽略,不抛出异常。
    update():合并两个集合,去掉重复元素。
  • 集合运算

序列解包

  • 对多个变量同时赋值。
    应用于字典时,默认的操作对象是键。

posted @ 2020-03-29 11:13  c1utchfan  阅读(333)  评论(0)    收藏  举报