数据容器入门
python中的数据容器:
一种可以容纳多份数据的数据类型,容纳的每一份数据称之为1个元素每一个元素,可以是任意类型的数据,如字符串、数字、布尔等。
根据容器特点的不同,如:
是否支持重复元素
是否可以修改
是否有序,等
分为5类,分别是:
列表(list)、元组(tuple)、字符串(str)、集合(set)、字典(dict)
数据容器:list(列表)
列表的定义
基本语法
# 字面量 [元素1,元素2,元素3,……] # 定义变量 变量名称=[元素1,元素2,元素3……] # 定义空列表 变量名称=[] 变量名称=list()
列表内每一个数据,称之为元素
以[]作为标识
列表内每一个元素之间用,逗号隔开
注意:列表可以一次存储多个数据,且可以为不同的数据类型,支持嵌套
列表的下标索引
列表中的每一个元素,都有其下标索引,从前向后的方向,从0开始,以此递增
(也可以从后向前,下标索引为:-1,-2,-3,依次递减)
我们只需要按照下标所索引,即可取得对应位置的元素。
语法:列表[下表索引]
(嵌套列表的语法:列表[外层下标索引] [内层下表索引]
name_list=['Tom','Lily','Rose'] print(name_list[0]) # 结果:Tom print(name_list[1]) # 结果:Lily print(name_list[2]) # 结果:Rose
列表的常用操作
列表除了可以:
定义
使用下标索引获取值
以外,列表也提供了一系列功能:
插入元素
删除元素
清空列表
修改元素
统计元素个数
等等功能,这些功能我们都称之为:列表的方法
列表的查询功能
查找某些元素的下标
功能:查找指定元素在列表的下标,如果找不到,报错ValueError
语法:列表.index(元素)
index就是列表对象(变量)内置的方法(函数)
列表的修改功能
修改特定位置(索引)的元素值:
语法:列表[下标]=值
可以使用如上方法,直接对指定下表=标(正向、反向下标均可)的值进行:重新赋值(修改)
# 正向下标 my_list=[1,2,3] my_list[0]=5 print(my_list) # 结果:[5,2,3] # 反向下标 my_list=[1,2,3] my_list[-3]=5 print(my_list) # 结果:[5,2,3]
插入元素
语法:列表.insert(下标,元素),在指定的下标位置,插入指定的元素
my_list=[1,2,3] my_list.insert(1,"itheima") print(my_list) # 结果:[1,"itheima",3,4]
追加元素
语法:列表.append(元素),将指定元素,追加到列表的尾部
my_list=[1,2,3] my_list.append(4) print(my_list) #结果 :[1,2,3,4] my_list=[1,2,3] my_list.append([4,5,6]) print(my_list) #结果:[1, 2, 3, [4, 5, 6]]
追加元素方式2:
语法:列表.extend(其他数据容器),将其他数据容器的内容取出,依次追加到列表尾部
my_list=[1,2,3] my_list.extend([4,5,6]) print(my_list) # 结果:[1,2,3,4,5,6]
删除元素
语法1:del 列表[下标]
语法2:列表.pop(下标)
my_list=[1,2,3] # 方式1 del my_list[0] print(my_list) # 结果:[2,3] # 方式2 num=my_list.pop(0) # 方式2可以将删除的元素取出来 print(my_list) #结果 :[3] print(num) # 结果:2
删除某元素在列表中的第一个匹配项
语法:列表.remove(元素)
my_list=[1,2,3,2,3] my_list.remove(2) print(my_list) # 结果:[1,3,2,3]
在列表中从前到后搜索,删除第一个匹配的元素
清空列表内容
语法:列表.clear()
my_list=[1,2,3] my_list.clear() print(my_list) # 结果:[]
统计某元素在列表内的数量
语法:列表.count(元素)
my_list=[1,1,1,2,3] print(my_list.count(1)) #结果:3
统计列表内,有多少元素
语法:len(列表)
可以得到一个int数字,表示列表内的元素数量
my_list=[1,2,3,4,5] print(len(my_list)) # 结果:5
列表.index(元素) | 查找指定元素在列表的下标,如果找不到,报错ValueError |
---|---|
列表[下标]=值 | 可以使用如上方法,直接对指定下表=标(正向、反向下标均可)的值进行:重新赋值(修改) |
列表.insert(下标,元素) | 在指定的下标位置,插入指定的元素 |
列表.append(元素) | 将指定元素,追加到列表的尾部 |
列表.extend(其他数据容器) | 将其他数据容器的内容取出,依次追加到列表尾部 |
del 列表[下标] | 删除元素 |
列表.pop(下标) | 删除元素 |
列表.remove(元素) | 在列表中从前到后搜索,删除第一个匹配的元素 |
列表.clear() | 清空列表内容 |
列表.count(元素) | 统计某元素在列表内的数量 |
len(列表) | 可以得到一个int数字,表示列表内的元素数量 |
列表的遍历
whlie循环遍历
index=0 while index<len(列表): 元素-列表[index] 对元素进行处理 index+=1
for循环遍历
for 临时变量 in 数据容器:
对临时变量进行处理
while循环和for循环的对比
while循环和for循环,都是循环语句,但细节不同:
在循环控制上:
while循环可以自定循环条件,并自行控制
for循环不可以自定循环条件,但可以一个个从容器内取出数据
在无限循环上:
while循环可以通过条件控制做到无限循环
for循环理论上不可以,因为被遍历的容器容量不是无限的
在使用场景上:
while循环适用于任何想要循环的场景
for循环使用于,遍历数据容器的场景或简单的固定次数循环场景
元组
元组同列表一样,都是可以封装多个、不同类型的元素在内。
但最大的不同点在于:
元组一旦定义完成,就不可以修改
元组定义:定义元组使用小括号,且使用逗号隔开各个数据,数据可以是不同的数据类型。
# 定义元组字面量 (元素,元素,……,元素) # 定义元组变量 变量名称=(元素,元素,……,元素) # 定义空元组 变量名称=() # 方式1 变量名称=tuple() # 方式2 # 定义1个元素的元组 t2=('Hello',)
注意:元组只有一个数据,这个数据后面要添加逗号
元组也支持嵌套
下标索引去取元素:同列表
元组[下标]
编号 | 方法 | 作用 |
---|---|---|
1 | index() | 查找某个数据,如果数据存在返回对应的下标,否则报错 |
2 | count(元素) | 统计某个数据在当前元组出现的次数 |
3 | len(元组) | 统计元组内的元素个数 |
元组的遍历同列表遍历
while循环与for循环遍历
元组内容不可以修改,但可以修改元组内的list的内容(修改元素、增加、删除、反转等)
笔记来源:哔哩哔哩"黑马程序员",若有侵权删