一、数据容器入门
二、数据容器:list(列表)
三、list(列表)的遍历
四、数据容器:tuple(元组)
五、数据容器:str(字符串)
六、数据容器的切片
七、数据容器:set(集合)
八、数据容器:dict(字典、映射)
九、数据容器的通用操作、对比总结、字符串大小比较
一、数据容器入门
数据容器
Python中的数据容器:
一种可以容纳多份数据 的数据类型,容纳的每一份数据称之为1个元素
每一个元素,可以是任意类型的数据,如字符串、数字、布尔等。
数据容器根据特点的不同,如:
- 是否支持重复元素
- 是否可以修改
- 是否有序,等
分为5类,分别是:
列表(list)、元组(tuple)、字符串(str)、集合(set)、字典(dict)
总结
- 什么是数据容器?
一种可以存储多个元素的Python数据类型- Python有哪些数据容器?
list(列表)、tuple(元组)、str(字符串)、set(集合)、dict(字典)
它们各有特点,但都满足可容纳多个元素的特性。
二、数据容器:list(列表)
- 列表的定义
列表的定义格式 - 列表的下标索引
使用列表的下标索引从列表中取出元素 - 列表的常用操作
列表的常用操作(方法)和特点
列表的定义
列表的定义方式:
总结
- 列表的定义语法
[元素1, 元素2, 元素3, ...]- 什么是元素?
数据容器内的每一份数据,都称之为元素- 元素的类型有限制吗?
元素的数据类型没有任何限制,甚至元素也可以是列表,这样就定义了嵌套列表
列表的下标(索引)
列表的下标(索引) - 反向
嵌套列表的下标(索引)
总结
- 列表的下标索引是什么?
列表的每一个元素,都有编号称之为下标索引
从前向后的方向,编号从0开始递增
从后向前的方向,编号从-1开始递减- 如何通过下标索引取出对应位置的元素呢?
列表[下标],即可取出- 下标索引的注意事项:
要注意下标索引的取值范围,超出范围无法取出元素,并且会报错
列表的常用操作(方法)
列表除了可以:
- 定义
- 使用下标索引获取值
以外,列表也提供了一系列功能:
- 插入元素
- 删除元素
- 清空列表
- 修改元素
- 统计元素个数
等等功能,这些功能我们都称之为:列表的方法
列表的查询功能(方法)
列表的查询下标(索引)(查)
列表的通过下标索引修改元素值的功能(方法)(改)
列表的插入元素的功能 (增)
列表的删除元素的功能 (删)
count函数 统计某元素在列表内的数量功能
len函数 列表的查询元素个数功能
列表的方法 - 总览
列表的特点
经过上述对列表的学习,可以总结出列表有如下特点:
- 可以容纳多个元素(上限为2**63-1、9223372036854775807个)
- 可以容纳不同类型的元素(混装)
- 数据是有序存储的(有下标序号)
- 允许重复数据存在
- 可以修改(增加或删除元素等)
三、list(列表)的遍历
- 使用while循环,遍历列表的元素
- 使用for循环,遍历列表的元素
列表的遍历 - while循环
列表的遍历 - for循环
while循环和for循环的对比
while循环和for循环,都是循环语句,但细节不同:
- 在循环控制上:
- while循环可以自定循环条件,并自行控制
- for循环不可以自定循环条件,只可以一个个从容器内取出数据
- 在无限循环上:
- while循环可以通过条件控制做到无限循环
- for循环理论上不可以,因为被遍历的容器容量不是无限的
- 在使用场景上:
- while循环适用于任何想要循环的场景
- for循环适用于,遍历数据容器的场景或简单的固定次数循环场景
四、数据容器:tuple(元组)
- 元组的定义
- 元组的操作
- 元组的特点
为什么需要元组
元组一旦定义完成,就不可修改
所以,当我们需要在程序内封装数据,又不希望封装的数据被篡改,那么元组就非常合适了
定义元组
元组的相关操作
元组的相关操作 - 注意事项
元组的遍历
元组的特点
总结出元组有如下特点:
- 可以容纳多个数据
- 可以容纳不同类型的数据(混装)
- 数据是有序存储的(下标索引)
- 允许重复数据存在
- 不可以修改(增加或删除元素等)
- 支持for循环
多数特性和list一致,不同点在于不可修改的特性。
总结
- 元组的定义方式:
(元素, 元素, 元素, ...)- 元组的操作方法:
- 元组的注意事项:
不可修改内容(可以修改内部list的内部元素)- 元组的特点:
- 和list基本相同(有序、任意数量元素、允许重复元素),唯一不同在于不可修改。
- 支持for循环
五、数据容器:str(字符串)
字符串的常见操作
字符串的下标(索引)
字符串的常用操作
字符串常用操作汇总
字符串的遍历
字符串的特点
作为数据容器,字符串有如下特点:
- 只可以存储字符串
- 长度任意(取决于内存大小)
- 支持下标索引
- 允许重复字符串存在
- 不可以修改(增加或删除元素等)
- 支持for循环
基本和列表、元组相同
不同与列表和元组的在于:字符串容器可以容纳的类型是单一的,只能是字符串类型。
不同于列表,相同于元组的在于:字符串不可修改
六、数据容器的切片
- 什么是序列
- 序列的切片操作
序列
序列是指:内容连续 、有序 ,可使用下标索引 的一类数据容器
列表、元组、字符串,均可以可以视为序列。
序列的常用操作 - 切片
序列 支持切片,即:列表、元组、字符串,均支持进行切片操作
切片:从一个序列中,取出一个子序列
语法:序列[起始下标:结束下标:步长]
表示从序列中,从指定位置开始,依次取出元素,到指定位置结束,得到一个新序列:
- 起始下标表示从何处开始,可以留空,留空视作从头开始
- 结束下标(不含)表示何处结束,可以留空,留空视作截取到结尾
- 步长 表示,依次取元素的间隔
- 步长1表示,一个个取元素
- 步长2表示,每次跳过1个元素取
- 步长N表示,每次跳过N-1个元素取
- 步长为负数表示,反向取(注意,起始下标和结束下标也要反向标记)
注意,此操作不会影响序列本身,而是会得到一个新的序列(列表、元组、字符串)
序列的切片演示
总结
- 什么是序列?
内容连续、有序,支持下标索引 的一类数据容器- 哪些数据容器可以视为序列?
列表、元组、字符串- 序列如何做切片
序列[起始:结束:步长]
- 起始可以省略,省略从头开始
- 结束可以省略,省略到尾结束
- 步长可以省略,省略步长为1(可以为负数,表示倒序执行)
七、数据容器:set(集合)
- 集合内不允许重复元素(去重)
- 集合内元素是无序的(不支持下标索引)
- 集合的定义格式
- 集合的特点
- 集合的常见操作
集合的定义
集合的常用操作 - 修改
集合的常用操作 - 集合长度
集合的常用操作 - for循环遍历
集合常用功能总结
集合的特点
经过上述对集合的学习,可以总结出集合有如下特点:
- 可以容纳多个数据
- 可以容纳不同类型的数据(混装)
- 数据是无序存储的(不支持下标索引)
- 不允许重复数据存在
- 可以修改(增加或删除元素等)
- 支持for循环
八、数据容器:dict(字典、映射)
- 字典的定义
字典的定义格式 - 字典的常用操作
字典的特点
字典的定义
字典数据的获取
字典同集合一样,不可以使用下标索引
但是字典可以通过Key值来取得对应的Value
字典的嵌套
字典的Key和Value可以是任意数据类型(Key不可为字典)
字典的注意事项
- 键值对的Key和Value可以是任意类型(Key不可为字典)
- 字典内Key不允许重复,重复添加等同于覆盖原有数据
- 字典不可用下标索引,而是通过Key检索Value
字典的常用操作
字典的常用操作总结
字典的特点
经过上述对字典的学习,可以总结出字典有如下特点:
- 可以容纳多个数据
- 可以容纳不同类型的数据
- 每一份数据是KeyValue键值对
- 可以通过Key获取到Value,Key不可重复(重复会覆盖)
- 不支持下标索引
- 可以修改(增加或删除更新元素等)
- 支持for循环,不支持while循环
九、数据容器的通用操作、对比总结、字符串大小比较
1、数据容器对比总结
数据容器分类区别
数据容器可以从以下视角进行简单的分类:
- 是否支持下标索引
- 支持:列表、元组、字符串 - 序列类型
- 不支持:集合、字典 - 非序列类型
- 是否支持重复元素 :
- 支持:列表、元组、字符串 - 序列类型
- 不支持:集合、字典 - 非序列类型
- 是否可以修改
- 支持:列表、集合、字典
- 不支持:元组、字符串
数据容器特点对比
总结
基于各类数据容器的特点,它们的应用场景如下:
- 列表:一批数据,可修改、可重复的存储场景
- 元组:一批数据,不可修改、可重复的存储场景
- 字符串:一串字符串的存储场景
- 集合:一批数据,去重存储场景
- 字典:一批数据,可用Key检索Value的存储场景
2、数据容器的通用操作
数据容器的通用操作 - 遍历
数据容器尽管各自有各自的特点,但是它们也有通用的一些操作。
首先,在遍历上:
- 5类数据容器都支持for循环遍历
- 列表、元组、字符串支持while循环,集合、字典不支持(无法下标索引)
尽管遍历的形式各有不同,但是,它们都支持遍历操作。
数据容器的通用统计功能
容器的通用转换功能
容器通用排序功能
容器通用功能总览
3、字符串大小比较
ASCII码表
在程序中,字符串所用的所有字符如:
- 大小写英文单词
- 数字
- 特殊符号(!、\、|、@、#、空格等)
都有其对应的ASCII码表值
每一个字符都能对应上一个:数字的码值
字符串进行比较就是基于数字的码值大小进行比较的。
字符串比较
总结
- 字符串如何比较
从头到尾,一位位进行比较,其中一位大,后面就无需比较了。- 单个字符之间如何确定大小?
通过ASCII码表,确定字符对应的码值数字来确定大小