高级数据类型

Python中的数据类型可以分为:数字型(基本数据类型)和非数字型(高级数据类型)

  • 数字型包含:整型int、浮点型float、布尔型bool、复数型complex
  • 非数字型包含:字符串str、列表list、元组tuple、集合set、字典dict

高级数据类型的特点

  • 都是一个序列 sequence,也可以理解为 容器
  • 获取某一个元素 数据集[index] (集合除外,无序的)
  • 通过for循环遍历
  • 都可以计算长度、最大/最小值、比较、删除
  • 连接 + 和 重复 *
  • 切片,获取容器一部分

    列表

    列表 是 Python 中使用 最频繁 的数据类型,专门用于存储 一串 数据,存储的数据 称为 元素
    列表的类型是:list

    列表的定义

    列表用[]定义,元素之间用逗号,分隔
    1. namesList = ['林青霞','张曼玉','胡慧中']

    访问列表的元素

    查找列表中元素是按照列表索引进行查找的。索引 就是元素在 列表 中的位置编号,又可以被称为 下标
    索引是从0开始的,例如:第一个元素,索引就为0
    list列表 - 图1
    1. namesList = ['林青霞','张曼玉','胡慧中']
    2. # 获取第二个人
    3. name = namesList[1]
    4. print(name)

    遍历列表

    可以通过for遍历列表中的元素
    1. namesList = ['林青霞','张曼玉','胡慧中']
    2. # 遍历列表
    3. for name in namesList:
    4. print(name)

    列表的操作

    列表可以增加新的元素,删除元素,修改元素。还可以对列表进行排序等操作

增加元素
通过append增加新元素

  1. namesList = ['林青霞','张曼玉','胡慧中']
  2. # 增加高圆圆
  3. namesList.append('高圆圆')
  4. print(namesList)

结果:

  1. ['林青霞', '张曼玉', '胡慧中', '高圆圆']

删除元素
通过pop删除指定索引元素

  1. namesList = ['林青霞','张曼玉','胡慧中']
  2. # 删除张曼玉
  3. namesList.pop(2)
  4. print(namesList)
  5. # ['林青霞','张曼玉']

通过remove方法删除指定内容元素

  1. namesList = ['林青霞','张曼玉','胡慧中']
  2. # 删除张曼玉
  3. namesList.remove('张曼玉')
  4. print(namesList)

结果:

  1. ['林青霞', '胡慧中']

修改元素
通过 列表[索引]=新数据 修改元素

  1. namesList = ['林青霞','张曼玉','胡慧中']
  2. # 将张曼玉修改成高圆圆
  3. namesList[1] = '高圆圆'
  4. print(namesList)

结果:

  1. ['林青霞', '高圆圆', '胡慧中']

查询
通过 列表[索引] 获取元素

  1. namesList = ['林青霞','张曼玉','胡慧中']
  2. # 查找第二个元素
  3. ele = namesList[1]
  4. print(ele)

结果:

  1. 张曼玉

通过 列表.index(元素) 查找元素的索引

  1. namesList = ['林青霞','张曼玉','胡慧中']
  2. # 查找元素张曼玉的索引
  3. index = namesList.index('张曼玉')
  4. print(index)

结果:

  1. 1

列表的排序

通过 列表.sort() 对列表进行升序排序

  1. ageList = [90,10,30,20,50,70]
  2. # 从小到大 升序
  3. ageList.sort()
  4. print(ageList)

结果:

  1. [10, 20, 30, 50, 70, 90]

通过 列表.sort(reverse=True) 对列表进行降序排序

  1. ageList = [90,10,30,20,50,70]
  2. # 从大到小 降序排序
  3. ageList.sort(reverse=True)
  4. print(ageList)

结果:

  1. [90, 70, 50, 30, 20, 10]

通过 列表.reverse() 对列表进行反转

  1. ageList = [90,10,30,20,50,70]
  2. # reverse 将列表进行反转
  3. ageList.reverse()
  4. print(ageList)

结果:

  1. [70, 50, 20, 30, 10, 90]

列表的嵌套

列表中的元素可以是列表类型的数据,就称为列表的嵌套
嵌套列表的定义:

  1. students = [
  2. ['林青霞','狄龙','郑少秋'],
  3. ['张曼玉','梁朝伟']
  4. ]

查询元素

  1. # 查询郑少秋
  2. student = students[0][2]

修改元素

  1. # 修改张曼玉位高圆圆
  2. students[1][0] = '高圆圆'

练习-办公室分配

需求
一个学校,有3个办公室,现在有8位老师等待工位的分配
['袁腾飞', '罗永浩', '俞敏洪', '李永乐', '王芳芳', '马云', '李彦宏', '马化腾']

请编写程序:

  1. 完成随机的分配
  2. 打印办公室信息 (每个办公室中的人数,及分别是谁)

分析

  1. 1. 定义3个办公室的列表:列表嵌套
  2. 2. 声明8位老师到列表中
  3. 3. 遍历老师的列表
  4. 4. 随机存放到办公室中

提示:获取随机数```python import random index = random.randint(0, 2) # 获取0、1、2中的任意一个

  1. **实现**
  2. ```python
  3. import random
  4. # 1.3个办公室(办公室:列表) 列表嵌套
  5. classroomList = [[], [], []]
  6. # 2.8位老师 列表中保存
  7. teachers = ['袁腾飞', '罗永浩', '俞敏洪', '李永乐', '王芳芳', '马云', '李彦宏', '马化腾']
  8. # 3.遍历老师的列表
  9. for teacher in teachers:
  10. # 随机办公室的角标 Ctrl+P查看提示
  11. # Ctrl+Alt+V 提取变量
  12. index = random.randint(0, 2)
  13. # 4.随机存放到办公室中
  14. classroom = classroomList[index]
  15. classroom.append(teacher)
  16. print(classroomList)