一、list列表
1. 高级数据类型
Python中的数据类型可以分为:数字型(基本数据类型)和非数字型(高级数据类型)
- 数字型包含:整型
int
、浮点型float
、布尔型bool
、复数型complex
- 非数字型包含:字符串
str
、列表list
、元组tuple
、集合set
、字典dict
高级数据类型的特点
- 都是一个序列 sequence,也可以理解为 容器
- 获取某一个元素
数据集[index]
(集合除外,无序的)- 通过
for
循环遍历- 都可以计算长度、最大/最小值、比较、删除
- 连接 + 和 重复 *
- 切片,获取容器一部分
2. 列表
列表 是 Python 中使用 最频繁 的数据类型,专门用于存储 一串 数据,存储的数据 称为 元素
列表的类型是:list
2.1. 列表的定义
列表用[]
定义,元素之间用逗号,
分隔
namesList = ['林青霞','张曼玉','胡慧中']
2.2. 访问列表的元素
查找列表中元素是按照列表索引进行查找的。索引 就是元素在 列表 中的位置编号,又可以被称为 下标
索引是从0开始的,例如:第一个元素,索引就为0
namesList = ['林青霞','张曼玉','胡慧中']
# 获取第二个人
name = namesList[1]
print(name)
2.3. 遍历列表
可以通过for遍历列表中的元素
namesList = ['林青霞','张曼玉','胡慧中']
# 遍历列表
for name in namesList:
print(name)
2.4. 列表的操作
列表可以增加新的元素,删除元素,修改元素。还可以对列表进行排序等操作
增加元素
通过append
增加新元素
namesList = ['林青霞','张曼玉','胡慧中']
# 增加高圆圆
namesList.append('高圆圆')
print(namesList)
结果:
['林青霞', '张曼玉', '胡慧中', '高圆圆']
删除元素
通过pop
删除指定索引元素
namesList = ['林青霞','张曼玉','胡慧中']
# 删除张曼玉
namesList.pop(2)
print(namesList)
# ['林青霞','张曼玉']
通过remove
方法删除指定内容元素
# 删除张曼玉
namesList.remove('张曼玉')
print(namesList)
结果:
['林青霞', '胡慧中']
修改元素
通过 列表[索引]=新数据
修改元素
namesList = ['林青霞','张曼玉','胡慧中']
# 将张曼玉修改成高圆圆
namesList[1] = '高圆圆'
print(namesList)
结果:
['林青霞', '高圆圆', '胡慧中']
查询
通过 列表[索引]
获取元素
namesList = ['林青霞','张曼玉','胡慧中']
# 查找第二个元素
ele = namesList[1]
print(ele)
结果:
张曼玉
通过 列表.index(元素)
查找元素的索引
namesList = ['林青霞','张曼玉','胡慧中']
# 查找元素张曼玉的索引
index = namesList.index('张曼玉')
print(index)
结果:
1
2.5. 列表的排序
通过 列表.sort()
对列表进行升序排序
ageList = [90,10,30,20,50,70]
# 从小到大 升序
ageList.sort()
print(ageList)
结果:
[10, 20, 30, 50, 70, 90]
通过 列表.sort(reverse=True)
对列表进行降序排序
ageList = [90,10,30,20,50,70]
# 从大到小 降序排序
ageList.sort(reverse=True)
print(ageList)
结果:
[90, 70, 50, 30, 20, 10]
通过 列表.reverse()
对列表进行反转
ageList = [90,10,30,20,50,70]
# reverse 将列表进行反转
ageList.reverse()
print(ageList)
结果:
[70, 50, 20, 30, 10, 90]
2.6. 列表的嵌套
列表中的元素可以是列表类型的数据,就称为列表的嵌套
嵌套列表的定义:
students = [
['林青霞','狄龙','郑少秋'],
['张曼玉','梁朝伟']
]
查询元素
# 查询郑少秋
student = students[0][2]
修改元素
# 修改张曼玉位高圆圆
students[1][0] = '高圆圆'
二、tuple元组
1. 元组简介
Python的元组与列表类似,也是容器的一种,不同之处在于元组的元素不能修改
- 用于存储 一串 数据,元素之间使用 , 分隔
- 元组的索引从
0
开始- 元组的类型:tuple
2. 元组的定义
元组用 ()
定义
names_tuple = ('林青霞','张曼玉','胡慧中')
注意:一个元素的元组定义需要在元素后加上,
# 错误定义方式 ❌
names_tuple = ('林青霞')
# 正确定义方式 ✅
names_tuple = ('林青霞',)
3. 元组的特点和作用
元组作为一种高级数据类型,具备如下的特点
自动组包
t
的类型是元组类型,这就是元组的自动组包特征
t = '林青霞','张曼玉','王祖贤'
自动解包
# 定义元组
t = ('林青霞','张曼玉','王祖贤')
# 变量赋值
name1,name2,name3 = t
元组t
会自动解包分别赋值给name1
、name2
、name3
三个变量
注意:左边变量的个数一定要和元组的元素个数保持一致
交换数据
交换数据在其它语言中的实现如下:
a = 10
b = 20
# 交换a和b
tmp = a
a = b
b = tmp
可以利用元组的组包和解包特点,,速交换两个数据
a = 10
b = 20
# 交换a和b
a,b = b,a
上述交换,首先右边会进行自动组包,组成新的元组(20,10)
左边会把元组解包,元素分别赋值给a
和b
,最终实现交换的功能
让列表不可修改
有时我们传递列表数据给别人使用,希望别人不要修改列表
可以把列表转换成元组,这样就变成了不可变的数据
lst = [10, 20, 30]
# 将列表转换成元组
tp = tuple(lst)
# 不可执行如下类似操作
tp[0] = 111
tp.append(222)