学习目标:
- 能够说出常用 Python 容器类型的名字:列表、元组、字典、字符串、集合
- 掌握容器类型的基本操作:定义和使用、增删改查、遍历等
01_列表
学习目标:
- 知道定义列表的基本格式
- 知道列表的常用操作:增删改查
- 能够使用 for 循环实现对列表中所有元素的遍历
1.1 列表的定义
list
(列表) 是Python
中使用 最频繁 的数据类型- 专门用于存储 一组数据,存储的每个数据 称为 元素
- 列表用
[]
定义,元素 之间使用,
分隔 - 列表的 索引(下标) 从
0
开始- 索引(下标) 就是元素在 列表 中的位置编号
"""
列表定义的格式:
列表变量的名字 = [元素1, 元素2, ……]
使用格式:
列表变量[下标]
"""
# 列表定义
name_list = ['mike', 'yoyo', 'rock', 'lily']
# 0 1 2 3
# -4 -3 -2 -1
# 最后一个元素取出来
print(name_list[3])
print(name_list[-1])
# 访问列表元素,不要超出范围,不要越界
# IndexError: list index out of range
# print(name_list[4])
- 注意:从列表中取值时,如果 超出索引(下标)范围,程序会报错
1.2 列表嵌套
- 一个列表中的元素又是列表,那么这就是列表的嵌套
school_list = [['北京大学', '清华大学'], ['中山大学', '华南理工大学'], ['哈工大', '哈工程']]
# 0 1 2
# 取出第 2 个元素,也就是下标为 1 的元素
print(school_list[1]) # ['中山大学', '华南理工大学']
# 先取出下标为 1 的元素,再继续取下标为 1 的元素
# ['中山大学', '华南理工大学']
# 0 1
print(school_list[1][1]) # '华南理工大学'
1.3 列表常用操作
分类 | 关键字 / 函数 / 方法 | 说明 | 举例 |
---|---|---|---|
增加 | 列表.append(值) | 在末尾追加数据 | |
删除 | 列表.remove(值) | 删除第一个出现的指定数据 | |
修改 | 列表[索引] = 值 | 修改指定索引的数据,数据不存在会报错 | |
查询 | 列表[索引] | 根据索引取值,索引不存在会报错 | |
len(列表) | 列表长度(元素个数) | |
|
值 in 列表 | 判断列表中是否包含某个值,结果是 True 或 False | |
|
排序 | 列表.sort() | 升序排序 | |
1.4 循环遍历
1.4.1 通过for循环遍历
- 遍历 就是 从头到尾 依次 从 列表 中取出 每一个元素
- Python中专门提供 for循环 实现遍历
# 遍历,从头开始找,直到结束
name_list = ['mike', 'yoyo', 'rock', 'lily']
# 通过while实现遍历
# 1. 定义条件变量i = 0
i = 0
# 2. while i < 列表元素个数:
while i < len(name_list):
# 3. 取出某个元素,打印
name = name_list[i]
print(name)
# 4. 条件变量的修改
i += 1
print('==========华丽分割线=============')
# for遍历循环,和上面的while效果等价
# 从头到尾 依次从 列表 中取出 每一个元素
for name in name_list:
print(name)
1.4.2 if…in 和 for…in 的区别
- if…in:判断某个元素是否在列表中,如果在,if的条件为True
- for…in:从头到尾 依次从 列表 中取出 每一个元素
name_list = ['mike', 'yoyo', 'rock', 'lily']
# if…in:判断某个元素是否在列表中,如果在,if的条件为True
name = 'yoyo'
# name的内容'yoyo'是否在name_list列表中,如果在,name in name_list结果为True
if name in name_list:
print('%s 在列表中' % name)
print('==========华丽分割线=============')
# for…in:从头到尾 依次从 列表 中取出 每一个元素,这个元素给name赋值
for name in name_list:
print(name)
运行结果:
yoyo 在列表中
==========华丽分割线=============
mike
yoyo
rock
lily
1.4.3 for…else的使用
- for循环里面没有遇到break语句,for执行完后,则会执行else的分支
name_list = ['mike', 'yoyo', 'rock', 'lily']
for name in name_list:
print(name)
# 测试有break,和没有break的else执行情况
# if name == 'yoyo':
# break
else:
print('for循环里面没有遇到break语句,for执行完后,则会执行else的分支')
运行结果:
mike
yoyo
rock
lily
for循环里面没有遇到break语句,for执行完后,则会执行else的分支
02_元组
学习目标:
- 知道定义元组的基本格式
- 知道元组和列表的区别
2.1 元组的定义
- 元组用
()
定义 - 也用于存储 一组 数据,元素 之间使用
,
分隔 - 元组的 索引(下标) 从
0
开始
# 列表:列表变量 = [元素1, 元素2, ……]
# 元组:元组变量 = (元素1, 元素2, ……)
my_tuple = ('mike', 'yoyo', 'lily')
# 0 1 2
# 取出第0个元素
print(my_tuple[0]) # 输出:'mike'
- 元组中 只包含一个元素 时,需要 在元素后面添加逗号
# 元组只有一个元素的时候,格式: (元素,)
my_tuple1 = (250,)
# 打印my_tuple1的类型
print(type(my_tuple1))
2.2 元组常用操作
tuple
(元组)与列表类似,不同之处在于元组的 元素不能修改
my_tuple = ('mike', 'yoyo', 'lily')
# 元组只读不能改
# TypeError: 'tuple' object does not support item assignment
# my_tuple[0] = 'rock' # err
分类 | 关键字 / 函数 / 方法 | 说明 | 举例 |
---|---|---|---|
查询 | 元组[索引] | 根据索引取值,索引不存在会报错 | |
len(元组) | 元组长度(元素个数) | |
|
值 in 元组 | 判断元组中是否包含某个值 | |
03_字典
学习目标:
- 知道定义字典的基本格式
- 知道字典的常用操作:增删改查
- 能够通过for循环完成对字典的遍历
3.1 字典的定义
- 字典同样可以用来 存储多个数据
- 通常用于存储 描述一个
物体
的相关信息
- 通常用于存储 描述一个
- 字典用
{}
定义 - 字典使用 键值对 存储数据,键值对之间使用
,
分隔- 键
key
是索引,值value
是数据 - 键 和 值 之间使用
:
分隔 - 值 可以取任何数据类型,但 键 只能使用 字符串、数字或 元组
- 键必须是唯一的
- 键
"""
字典定义格式:
字典变量 = {k1:v1, k2:v2,……}
取出元素的值:
字典变量[键值]
"""
# 字典的定义
info = {'name': 'mike', 'age': 34, 'city': 'sz'}
print(info) # {'name': 'mike', 'age': 34, 'city': 'sz'}
# 取出元素的值:字典变量[键值]
print(info['city'])
3.2 字典常用操作
分类 | 关键字 / 函数 / 方法 | 说明 | 举例 |
---|---|---|---|
增加 | 字典[键] = 值 | 键不存在,会添加键值对 | |
删除 | 字典.pop(键) | 删除指定键值对,返回被删除的值,如果键不存在,会报错 | |