1.数据容器定义
一种可以容纳多份数据的数据类型(容器),容纳的每一份数据称为 1 个元素,每个元素都可以是任意类型的数据
数据容器主要有以下5种:列表,字符串,元组,集合,字典
序列类型:容器中的元素按特定顺序排列的,可通过索引访问的容器类型称之为序列
2.列表 list
2.1 列表定义
列表是数据容器的一类,一次性可以存储多个数据(元素)
定义:列表名称 = [ 元素1 ,元素2 , 元素3 , 元素4 , ... ]
特点:
- 可以存储不同类型的元素
- 元素有序,可以重复,元素可以修改
- 列表是序列
- 使用 [ ] 定义
注意:
- 正索引:从前往后,下标从 0 开始
- 负索引:从后往前,下标从 -1 开始
列表相关基础操作:
2.2 列表切片
切片:指对操作的数据截取其中一部分的操作。序列都支持切片操作
语法:序列数据 [开始索引 : 结束索引 : 步长]
- 左闭右开,不包含结束索引位置对应元素(开始索引未指定默认为0;结束索引未指定默认为列表长度;步长未指定默认为1)
- 索引采用正向,反向索引都可以
- 步长是选取间隔,默认步长为1
- start ---> end 方向要与步长方向一致
2.3 列表的常见方法
方法调用格式:对象.方法名(数据)
pop():会返回指定删除的元素,因此可以 a = s.pop(2) ,用 a 记录删除的元素;pop()默认删除最后一个
Python中用于数据统计常用语句补充内容:
- sum(list):对列表内所有元素进行求和并返回其值
- min(list):获取列表内所有元素的最小值并返回
- max(list):获取列表内所有元素的最大值并返回
- len(list):返回列表中元素个数
注意:以上语句皆未对列表进行操作,不会改变列表
2.4 列表推导式
列表推导式就是按照一定的规则快速生成一个列表的方法
- 格式1:列表名称 = [ 要插入列表的数据 for i in 列表]
- 格式2:列表名称 = [ 要插入列表的数据 for i in 列表 if 条件]
对于格式2,只有 if 后面的条件成立,才会插入列表,否则不会插入
3.字符串 str
3.1 字符串定义
字符串是字符的容器,一个字符串中可以存放任意数量的字符
特点:
- 不可变性(定义后无法修改)
- 有序性
- 可迭代性:可以直接用 for 循环遍历,迭代的单位是单个字符
- 字符串是序列
- 使用引号" "定义
字符串中的每一个符号元素都有其对应的索引,通过元素对应的索引,就可以获取到对应的元素
3.2 字符串切片
2.3 字符串的常见方法
由于字符串具有不可变性,以上所有的字符串方法并不会改变所操作的字符串本身,而是会返回相应的需求
4.元组 tuple
4.1 元组的定义
元组是不可变序列,类似于列表,但创建后不能修改
元组的特点:
- 可以存储不同类型的元素
- 元素可以重复,有序,不可以修改(与列表的最大不同)
- 支持索引访问,切片
- 元组是序列
- 使用 ( ) 定义
元组的两个查询方法:
- count():统计某元素在元组中出现的次数
- index():查找某个元素在元组中的索引位置(第一次出现的位置)
如果定义单元素元组,需要在单个元素之后加上,比如(100,)
4.2 元组的组包与解包
组包:将多个值合并到一个容器(元组,列表)中
解包:将容器(元组,列表)解开成独立元素,分别赋给多个变量
说明:在元组解包时,* 代表收集剩余的所有元素,允许我们处理不确定数量的元素(生成列表,以便于我们可以进一步的进行处理)
例如:现有两个变量 a,b ,交换两个变量的值:
该语句的本质是右侧完成了组包,左侧完成了解包
5.集合 set
集合的适用场景:存储需要去重的元素
5.1 集合的定义
集合是一种无序的,不可重复,可修改的数据容器,其定义如下:
注意:
- 集合使用 { } 定义,但是空集合的定义不可以用 { } ,{ } 表示的是空字典;由于集合是无序的,因此集合不支持索引访问
- 集合不是序列
5.2 集合的操作
- 添加
- 删除
- 交,并,差集
交集 intersection( ):可以通过运算符 &进行操作
差集 difference( ):可以通过运算符 -进行操作
并集 union( ):可以通过运算符 |进行操作
集合推导式:用于快速构建集合,语法:{要往集合中添加的数据 for s in set if 条件}
5.3 小结
6.字典 dict
6.1 字典的定义
字典 dict 里面存储的是键值对(key :value)类型的数据,每一个键(key)都对应一个值(value),可以根据键(key)找到对应的值(value)
特点:
- 键值对(key :value)存储
- 键(key)不能重复 (如果重复,后面的值会覆盖前面的值)
- 可修改
- 字典不是序列
- 使用 { } 定义
定义如下:
注意:字典(dict)中的value 可以是任意类型的数据,而key 不能为可变类型(如:不能为列表list,集合set,字典dict)
字典的注意事项:
- value 可以是任意类型,而 key 必须是不可变类型
- 字典内的 key 不允许重复 , 如果重复定义 , 后面的覆盖前面的
- 字典是没有索引下标的,不能根据索引获取值,只可以根据 key 获取 value