Python基础笔记-Day04-容器

“容器”这两个字很少被 Python 技术文章提起。一看到“容器”,大家想到的多是那头蓝色小鲸鱼:Docker,但python的容器与它没有任何关系。这里的容器,是 Python 中的一个抽象概念,是对专门用来装其他对象的数据类型的统称。

在 Python 中,有四类最常见的内建容器类型:列表(list)、元组(tuple)、字典(dict)、集合(set)。通过单独或是组合使用它们,可以高效的完成很多事情。

Python 语言自身的内部实现细节也与这些容器类型息息相关。比如 Python 的类实例属性、全局变量 globals() 等就都是通过字典类型来存储的。

列表 list

Python基础笔记-Day04-容器

列表与字符串转换

将多个字符串拼接为一个。

result = "连接符".join(列表)

将一个字符串拆分为多个。

列表 = “a-b-c-d”.split(“分隔符”)

列表推导式

  1. 定义:

使用简易方法,将可迭代对象转换为列表。

  1. 语法:

变量 = [表达式 for 变量 in 可迭代对象]

变量 = [表达式 for 变量 in 可迭代对象 if 条件]

  1. 说明:

如果if真值表达式的布尔值为False,则可迭代对象生成的数据将被丢弃。

列表推导式嵌套

  1. 语法:

变量 = [表达式 for 变量1 in 可迭代对象1 for 变量2 in可迭代对象2]

  1. 传统写法:

result = []

for r in  ["a", "b", "c"]:

    for c in ["A", "B", "C"]:

        result.append(r + c)

  1. 推导式写法:

result = [r + c for r in list01 for c in list02]

元组 tuple

Python基础笔记-Day04-容器

定义

  1. 由一系列变量组成的不可变序列容器。 
  2. 不可变是指一但创建,不可以再添加/删除/修改元素。    

基础操作

  1. 创建空元组:

元组名 = ()

元组名 = tuple()

  1. 创建非空元组:

元组名 = (20,)

    元组名 = (1, 2, 3)

元组名 = 100,200,300

元组名 = tuple(可迭代对象)

  1. 获取元素:  

变量 = 元组名[索引]

变量 = 元组名[切片] # 赋值给变量的是切片所创建的新列表  

  1. 遍历元组:

正向:

for 变量名 in 列表名:

变量名就是元素

反向:

for 索引名 in range(len(列表名)-1,-1,-1):

元组名[索引名]就是元素

作用

  1. 元组与列表都可以存储一系列变量,由于列表会预留内存空间,所以可以增加元素。
  2. 元组会按需分配内存,所以如果变量数量固定,建议使用元组,因为占用空间更小。
  3. 应用:

变量交换的本质就是创建元组:x, y = (y, x )

格式化字符串的本质就是创建元祖:"姓名:%s, 年龄:%d"  % ("tarena", 15)

字典 dict

Python基础笔记-Day04-容器

定义

  1. 由一系列键值对组成的可变散列容器。
  2. 散列:对键进行哈希运算,确定在内存中的存储位置,每条数据存储无先后顺序。
  3. 键必须惟一且不可变(字符串/数字/元组),值没有限制。

基础操作

  1. 创建字典:

字典名 = {键1:值1,键2:值2}

字典名 = dict (可迭代对象) 

  1. 添加/修改元素:

语法:

    字典名[键] = 数据

说明:

    键不存在,创建记录。

    键存在,修改值。

  1. 获取元素:

变量 = 字典名[键]  # 没有键则错误

  1. 遍历字典:

for 键名 in 字典名:

字典名[键名]

for 键名,值名 in 字典名.items():

语句

  1. 删除元素:

del 字典名[键]

字典推导式

  1. 定义:

使用简易方法,将可迭代对象转换为字典。

  1. 语法:

{键:值 for 变量 in 可迭代对象}

    {键:值 for 变量 in 可迭代对象 if 条件}

集合 set

Python基础笔记-Day04-容器

定义

  1. 由一系列不重复的不可变类型变量(元组/数/字符串)组成的可变散列容器。
  2. 相当于只有键没有值的字典(键则是集合的数据)。

基础操作

  1. 创建空集合: 

集合名 = set()  

集合名 = set(可迭代对象)

  1. 创建具有默认值集合:

集合名 = {1, 2, 3}

集合名 = set(可迭代对象)

  1. 添加元素:

集合名.add(元素)

  1. 删除元素:

集合名.discard(元素)

运算

  1. 交集&:返回共同元素。

s1 = {1, 2, 3}

s2 = {2, 3, 4}

  s3 = s1 & s2  # {2, 3}

  1. 并集:返回不重复元素

s1 = {1, 2, 3}

  s2 = {2, 3, 4}

  s3 = s1 | s2  # {1, 2, 3, 4}

  1. 补集-:返回只属于其中之一的元素

  s1 = {1, 2, 3}

  s2 = {2, 3, 4}

  s1 - s2  # {1} 属于s1但不属于s2

补集^:返回不同的的元素

  s1 = {1, 2, 3}

  s2 = {2, 3, 4}

  s3 = s1 ^ s2  # {1, 4}  等同于(s1-s2 | s2-s1)

  1. 子集<:判断一个集合的所有元素是否完全在另一个集合中
  2. 超集>:判断一个集合是否具有另一个集合的所有元素

  s1 = {1, 2, 3}

  s2 = {2, 3}

s2 < s1  # True

  s1 > s2  # True

  1. 相同或不同== !=:判断集合中的所有元素是否和另一个集合相同。

  s1 = {1, 2, 3}

  s2 = {3, 2, 1}

  s1 == s2  # True

  s1 != s2  # False

子集或相同,超集或相同 <=  >= 

集合推导式

  1. 定义:

使用简易方法,将可迭代对象转换为集合。

  1. 语法:

{表达式 for 变量 in 可迭代对象}

     {表达式 for 变量 in 可迭代对象 if 条件}

Python基础笔记-Day04-容器
版权声明:seasilo 发表于 2020-11-18 23:18:24。
转载请注明:Python基础笔记-Day04-容器 | 海筒自习室

暂无评论

暂无评论...