高级数据类型
Python中的数据类型可以分为:数字型(基本数据类型)和非数字型(高级数据类型)
- 数字型包含:整型
int、浮点型float、布尔型bool、复数型complex - 非数字型包含:字符串
str、列表list、元组tuple、集合set、字典dict
高级数据类型的特点
- 都是一个序列 sequence,也可以理解为 容器
- 获取某一个元素
数据集[index](集合除外,无序的) - 通过
for循环遍历 - 都可以计算长度、最大/最小值、比较、删除
- 连接 + 和 重复 *
- 切片,获取容器一部分
列表
列表 是 Python 中使用 最频繁 的数据类型,专门用于存储 一串 数据,存储的数据 称为 元素
列表的类型是:list列表的定义
列表用[]定义,元素之间用逗号,分隔namesList = ['林青霞','张曼玉','胡慧中']
访问列表的元素
查找列表中元素是按照列表索引进行查找的。索引 就是元素在 列表 中的位置编号,又可以被称为 下标
索引是从0开始的,例如:第一个元素,索引就为0
namesList = ['林青霞','张曼玉','胡慧中']# 获取第二个人name = namesList[1]print(name)
遍历列表
可以通过for遍历列表中的元素namesList = ['林青霞','张曼玉','胡慧中']# 遍历列表for name in namesList:print(name)
列表的操作
列表可以增加新的元素,删除元素,修改元素。还可以对列表进行排序等操作
增加元素
通过append增加新元素
namesList = ['林青霞','张曼玉','胡慧中']# 增加高圆圆namesList.append('高圆圆')print(namesList)
结果:
['林青霞', '张曼玉', '胡慧中', '高圆圆']
删除元素
通过pop删除指定索引元素
namesList = ['林青霞','张曼玉','胡慧中']# 删除张曼玉namesList.pop(2)print(namesList)# ['林青霞','张曼玉']
通过remove方法删除指定内容元素
namesList = ['林青霞','张曼玉','胡慧中']# 删除张曼玉namesList.remove('张曼玉')print(namesList)
结果:
['林青霞', '胡慧中']
修改元素
通过 列表[索引]=新数据 修改元素
namesList = ['林青霞','张曼玉','胡慧中']# 将张曼玉修改成高圆圆namesList[1] = '高圆圆'print(namesList)
结果:
['林青霞', '高圆圆', '胡慧中']
查询
通过 列表[索引] 获取元素
namesList = ['林青霞','张曼玉','胡慧中']# 查找第二个元素ele = namesList[1]print(ele)
结果:
张曼玉
通过 列表.index(元素) 查找元素的索引
namesList = ['林青霞','张曼玉','胡慧中']# 查找元素张曼玉的索引index = namesList.index('张曼玉')print(index)
结果:
1
列表的排序
通过 列表.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]
列表的嵌套
列表中的元素可以是列表类型的数据,就称为列表的嵌套
嵌套列表的定义:
students = [['林青霞','狄龙','郑少秋'],['张曼玉','梁朝伟']]
查询元素
# 查询郑少秋student = students[0][2]
修改元素
# 修改张曼玉位高圆圆students[1][0] = '高圆圆'
练习-办公室分配
需求
一个学校,有3个办公室,现在有8位老师等待工位的分配['袁腾飞', '罗永浩', '俞敏洪', '李永乐', '王芳芳', '马云', '李彦宏', '马化腾']
请编写程序:
- 完成随机的分配
- 打印办公室信息 (每个办公室中的人数,及分别是谁)
分析
1. 定义3个办公室的列表:列表嵌套2. 声明8位老师到列表中3. 遍历老师的列表4. 随机存放到办公室中
提示:获取随机数```python import random index = random.randint(0, 2) # 获取0、1、2中的任意一个
**实现**```pythonimport random# 1.3个办公室(办公室:列表) 列表嵌套classroomList = [[], [], []]# 2.8位老师 列表中保存teachers = ['袁腾飞', '罗永浩', '俞敏洪', '李永乐', '王芳芳', '马云', '李彦宏', '马化腾']# 3.遍历老师的列表for teacher in teachers:# 随机办公室的角标 Ctrl+P查看提示# Ctrl+Alt+V 提取变量index = random.randint(0, 2)# 4.随机存放到办公室中classroom = classroomList[index]classroom.append(teacher)print(classroomList)
