Python-第六天 Python数据容器
一、数据容器入门
1.数据容器
Python中的数据容器:
一种可以容纳多份数据的数据类型,容纳的每一份数据称之为1个元素
每一个元素,可以是任意类型的数据,如字符串、数字、布尔等。
数据容器根据特点的不同,如:
- 是否支持重复元素
- 是否可以修改
- 是否有序,等
分为5类,分别是:
列表(list)、元组(tuple)、字符串(str)、集合(set)、字典(dict)
我们将一一学习它们
二、数据容器:list(列表)
1.列表的定义
基本语法:
# 字面量
[元素1,元素2,元素3,元素4,...]
# 定义变量
变量名称 = [元素1,元素2,元素3,元素4,...]
# 定义空列表
变量名称 = []
变量名称 = list()
列表内的每一个数据,称之为元素
- 以
[]
作为标识 - 列表内每一个元素之间用
,
逗号隔开 - 注意:列表可以一次存储多个数据,
且可以为不同的数据类型
,支持嵌套
示例:
my_list1 = ['ithema',"itcast","""python"""]
my_list2 = ['itheima',666,True]
my_list3 = [1,2,3,[4,5,6]]
print(f'{
my_list1} 列表的类型为:{
type(my_list1)}')
print(f'{
my_list2} 列表的类型为:{
type(my_list2)}')
print(f'{
my_list3} 列表的类型为:{
type(my_list3)}')
2.列表的下标(索引)
我们可以使用下标索引从列表中取出特定位置的数据
如图,列表中的每一个元素,都有其位置下标索引,从前向后的方向,从0开始,依次递增
我们只需要按照下标索引,即可取得对应位置的元素。
基本语法
# 语法: 列表[下标索引]
name_list = ['Tom','zs','ls']
print(name_list[0]) # 结果 :Tom
print(name_list[1]) # 结果 :zs
print(name_list[2]) # 结果 :ls
或者,可以反向索引,也就是从后向前:从-1开始,依次递减(-1、-2、-3......)
如图,从后向前,下标索引为:-1、-2、-3,依次递减。
如果列表是嵌套的列表,同样支持下标索引
如图,下标就有2个层级了。
要注意下标索引的取值范围,超出范围无法取出元素,并且会报错
3.列表的常用操作(方法)
列表除了可以:
- 定义
- 使用下标索引获取值
以外,列表也提供了一系列功能:
- 插入元素
- 删除元素
- 清空列表
- 修改元素
- 统计元素个数
等等功能,这些功能我们都称之为:列表的方法
示例:
# 查询功能 列表.index(元素)
my_list =['itheima','itcast','python']
print(my_list.index('itcast')) #结果 :1
# 修改功能
# 1.修改特定位置元素的值 列表[下标] = 值 正向、反向下标均可
# 1.1正向下标
my_list = [1,2,3]
my_list[0] = 5
print(my_list) # 结果:[5,2,3]
# 1.2.反向下标
my_list = [1,2,3]
my_list[-3] = 5
print(my_list) # 结果:[5,2,3]
# 2.插入元素 列表.insert(下标,元素) 在指定的下标位置,插入指定的元素
my_list = [1,2,3]
my_list.insert(1,'itheima')
print(my_list) # 结果:[1,'itheima',2,3]
# 3.追加元素
# 3.1 列表.append(元素) 将指定元素,追加到列表尾部
my_list = [1,2,3]
my_list.append([4,5,6])
print(my_list) # 结果:[1,2,3,[4,5,6]]
# 3.2 列表.extend(其他数据容器) 将其他数据容器的内容取出,依次追加到列表尾部
my_list = [1,2,3]
my_list.extend([4,5,6])
print(my_list) # 结果:[1,2,3,4,5,6]
# 4.删除元素
# 4.1 del 列表[下标]
my_list = [1,2,3]
del my_list[0]
print(my_list) # 结果:[2,3]
# 4.2 列表.pop(下标)
my_list = [1,2,3]
my_list.pop(0)
print(my_list) # 结果:[2,3]
# 4.3 列表.remove(元素) 删除某元素在列表中的第一个匹配项
my_list = [1,2,3,2,3]
my_list.remove(2)
print(my_list) # 结果:[1,3,2,3]
# 4.4 列表.clear() 清空列表
my_list = [1,2,3,2,3]
my_list.clear()
print(my_list) # 结果:[]
# 列表.count(元素) 统计某元素在列表中的数量
my_list = [1,1,3,1,3]
print(my_list.count(1)) # 结果:3
# len(列表) 统计列表内的元素个数
my_list = [1,1,3,1,3]
print(len(my_list)) # 结果:5
经过上述对列表的学习,可以总结出列表有如下特点:
- 可以容纳多个元素(上限为2**63-1、9223372036854775807个)
- 可以容纳不同类型的元素(混装)
- 数据是有序存储的(有下标序号)
- 允许重复数据存在
- 可以修改(增加或删除元素等)
4.练习案例:常用功能练习
有一个列表,内容是:[21, 25, 21, 23, 22, 20],记录的是一批学生的年龄
请通过列表的功能(方法),对其进行
- 定义这个列表,并用变量接收它
- 追加一个数字31,到列表的尾部
- 追加一个新列表[29, 33, 30],到列表的尾部
- 取出第一个元素(应是:21)
- 取出最后一个元素(应是:30)
- 查找元素31,在列表中的下标位置
# 定义这个列表,并用变量接收它
age_list = [21, 25, 21, 23, 22, 20]
print(age_list)
# 追加一个数字31,到列表的尾部
age_list.append(31)
print(age_list)
# 追加一个新列表[29, 33, 30],到列表的尾部
age_list.extend([29,33,30])
print(age_list)
# 取出第一个元素(应是:21)
print(age_list[0])
# 取出最后一个元素(应是:30)
print(age_list[-1])
# 查找元素31,在列表中的下标位置
print(age_list.index(31))
5.list(列表)的遍历
5.1 列表的遍历 - while循环
语法
index = 0
while index < len(列表):
元素 = 列表[index]
对元素处理
index +=1
5.2 列表的遍历 - for 循环
语法
for 临时变量 in 数据容器:
对临时变量处理
5.3 while循环和for循环的对比
while循环和for循环,都是循环语句,但细节不同:
在循环控制上:
- while循环可以自定循环条件,并自行控制
- for循环不可以自定循环条件,只可以一个个从容器内取出数据
在无限循环上:
- while循环可以通过条件控制做到无限循环
- for循环理论上不可以,因为被遍历的容器容量不是无限的
在使用场景上:
- while循环适用于任何想要循环的场景
- for循环适用于,遍历数据容器的场景或简单的固定次数循环场景
5.4 练习
定义一个列表,内容是:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
遍历列表,取出列表内的偶数,并存入一个新的列表对象中
使用while循环和for循环各操作一次
提示:
- 通过if判断来确认偶数
- 通过列表的append方法,来增加元素
"""
定义一个列表,内容是:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
遍历列表,取出列表内的偶数,并存入一个新的列表对象中
使用while循环和for循环各操作一次
提示:
通过if判断来确认偶数
通过列表的append方法,来增加元素
"""
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_list = []
index = 0
#while
while index <