Python中的数据容器: 一种可以容纳多份数据的数据类型,容纳的每一份数据称之为1个元素 每一个元素,可以是任意类型的数据,如字符串、数字、布尔等。
数据容器根据特点的不同,如:
-
是否支持重复元素
-
是否可以修改
-
是否有序,等
分为5类,分别是: 列表(list)、元组(tuple)、字符串(str)、集合(set)、字典(dict)
1、列表
1.1 列表的定义
列表内的每一个数据,称之为元素
-
以 [] 作为标识
-
列表内每一个元素之间用, 逗号隔开
注意:列表可以一次存储多个数据,且可以为不同的数据类型,支持嵌套
1.1.1列表的下标(索引)
如图,列表中的每一个元素,都有其位置下标索引,从前向后的方向,从0开始,依次递增 我们只需要按照下标索引,即可取得对应位置的元素。
eg:
1.1.2列表的下标(索引) - 反向
如图,从后向前,下标索引为:-1、-2、-3,依次递减。
1..1.3嵌套列表的下标(索引)
如果列表是嵌套的列表,同样支持下标索引
eg:
注意:下标索引的取值范围,超出范围无法取出元素,并且会报错
1.2 列表的常用操作(方法)
1.3列表的遍历
列表的遍历 - while循环
eg:
可以使用while循环 遍历列表的元素,使用列表[下标]的方式取出 列表的元素, 定义一个变量表示下标控制循环条件,从0开始 循环,条件为 下标值 < 列表的元素数量
列表的遍历 - for循环
eg:
从容器内,依次取出元素并赋值到临时变量上。 在每一次的循环中,我们可以对临时变量(元素)进行处理。
while循环和for循环的对比
while循环和for循环,都是循环语句,但细节不同:
在循环控制上:
-
while循环可以自定循环条件,并自行控制
-
for循环不可以自定循环条件,只可以一个个从容器内取出数据
在无限循环上:
-
while循环可以通过条件控制做到无限循环
-
for循环理论上不可以,因为被遍历的容器容量不是无限的
在使用场景上:
-
while循环适用于任何想要循环的场景
-
for循环适用于,遍历数据容器的场景或简单的固定次数循环场景
2、tuple(元组)
元组同列表一样,都是可以封装多个、不同类型的元素在内。 但最大的不同点在于: 元组一旦定义完成,就不可修改
2.1元组定义:
定义元组使用小括号,且使用逗号隔开各个数据,数据可以是不同的数据类型。
#定义元组字面量 (元素,元素,……,元素) #定义元组变量
变量名称=(元素,元素,……,元素) #定义空元组
变量名称=() #方式1
变量名称 = tuple() #方式2
eg:
# 定义元组
z1 = (1, "good", True)
z2 = ()
z3 = tuple()
注意:元组只有一个数据,这个数据后面要添加逗号
2.2元组的操作
eg:
# 元组的嵌套
a = ( (1, 2, 3), (4, 5, 6) )
# 下标索引去取出内容
num = a[1][2]
# 元组的操作:index查找方法
b = ("good", "yes", "Python")
index = b.index("yes")
# 元组的操作:count统计方法
c = ("good", "yes", "Python","good", "yes", "Python")
num = c.count("python")
# 元组的操作:len函数统计元组元素数量
num = len(c)
元组的相关操作 - 注意事项
-
不可以修改元组的内容,否则会直接报错
-
可以修改元组内的list的内容(修改元素、增加、删除、反转等)
-
不可以替换list为其它list或其它类型
2.3元组的遍历
while:
for:
3、str(字符串)
字符串是字符的容器,一个字符串可以存放任意数量的字符。
字符串常用操作汇总
4、序列
序列是指:内容连续、有序,可使用下标索引的一类数据容器 列表、元组、字符串,均可以可以视为序列。
序列的常用操作 - 切片
序列支持切片,即:列表、元组、字符串,均支持进行切片操作 切片:从一个序列中,取出一个子序列
语法:序列[起始下标:结束下标:步长] 表示从序列中,从指定位置开始,依次取出元素,到指定位置结束,得到一个新序列:
-
起始下标表示从何处开始,可以留空,留空视作从头开始
-
结束下标(不含)表示何处结束,可以留空,留空视作截取到结尾
-
步长表示,依次取元素的间隔
步长1表示,一个个取元素 ;
步长2表示,每次跳过1个元素取;
步长为负数表示,反向取(注意,起始下标和结束下标也要反向标记)
注意,此操作不会影响序列本身,而是会得到一个新的序列(列表、元组、字符串)
5、集合
集合的定义方式: {元素, 元素, ……, 元素}
集合常用功能总结
集合有如下特点:
-
可以容纳多个数据
-
可以容纳不同类型的数据(混装)
-
数据是无序存储的(不支持下标索引)
-
不允许重复数据存在 可以修改(增加或删除元素等)
-
支持for循环
6、字典
字典的定义,同样使用{},不过存储的元素是一个个的:键值对,如下语法:
-
使用{}存储原始,每一个元素是一个键值对 每一个键值对包含Key和Value(用冒号分隔) 键值对之间使用逗号分隔
-
Key和Value可以是任意类型的数据(key不可为字典)
-
Key不可重复,重复会对原有数据覆盖
字典数据的获取:score = 字典变量["key"]
嵌套字典的内容获取:score = 字典变量["key"]["key1"]
字典的常用操作总结
总结:数据容器对比总结
根容器分类
数据容器可以从以下视角进行简单的分类:
- 是否支持下标索引
支持:列表、元组、字符串 - 序列类型
不支持:集合、字典 - 非序列类型
- 是否支持重复元素:
支持:列表、元组、字符串 - 序列类型
不支持:集合、字典 - 非序列类型
- 是否可以修改
支持:列表、集合、字典
不支持:元组、字符串
数据容器特点对比
容器通用功能总览
该学习笔记由观看 黑马程序员python教程,8天python从入门到精通,学python看这套就够了-哔哩哔哩】 https://b23.tv/fDS6HWr 而做的。