十二、元组
元组:tuple,元组的特点和列表非常相似
1.元组中可以存放任意类型的数据
2.元组中可以存放任意多个数据
区别:
1.元组中的数据内容不能被修改,列表中的可以改变
2.元组使用(),列表使用[]
应用:在函数传参或返回值中使用,保证数据不会被修改
12.1、定义
使用 类实例化的方式
直接使用()方式
# 1 类实例化的方式
# 1.1 定义空元组(不会使用)
tuple1 = tuple()
print(type(tuple1),tuple1) # <class 'tuple'> ()
# 1.2 类型转换
# 可以将列表转换为元组,只需要将[],变为(),同时可以将元组转换为列表,将()变为[]
tuple2 = tuple([1,2,3])
print(type(tuple2),tuple2) # <class 'tuple'> (1, 2, 3)
# 转换字符串,和列表一样,只是将列表的[]变为()
tuple3 = tuple('hello')
print(type(tuple3),tuple3) # <class 'tuple'> ('h', 'e', 'l', 'l', 'o')
# 2 直接使用()定义
tuple4 = (1,'赛季开始时',3.55,False)
print(tuple4)
# 3 特殊点,定义只有一个元组时,数据后边必须有一个逗号
tuple5 = (1,)
print(tuple5)
12.2、常用方法
由于元组中数据不能修改,所以只有查看的方法
1.元组中可以使用 下标和切片获取数据
2.在元组中存在 index 方法,查找下标,不存在会报错
3.在元组中存在count 方法
4.在元组中可以使用 in 操作
以上方法的使用 和列表中使用一样
十三、字典
1.字典dict,字典中的数据是由键(key)值(value)对组成的(键表示数据的名字,值就是具体的数据)
2.在字典中一组键值对是一个数据,多个键值对之间使用逗号隔开
变量 = {key: value,key: value,…}
3.一个字典中的键是不能重复的,值是可以重复的
4.字典中的键 一般都是字符串,可以是数字,不能是列表
13.1、字典的定义
# 1. 使用类实例化的方法
dict1 = dict()
print(type(dict1), dict1) # <class 'dict'> {}
# dict()不能转列表和元组,字符串
# 2.直接使用{}定义
# 2.1空字典
dict1 = {}
print(type(dict1), dict1) # <class 'dict'> {}
# 2.2 非空字典,小明(‘name') 18('age') 1.85('height') True(is_men) 吃 喝(’like')
dict2 = {'name': '小明', 'age': 18, 'height': 1.85, 'is_men': True, 'like': ['吃', '喝']}
print(dict2)
# {'name': '小明', 'age': 18, 'height': 1.85, 'is_men': True, 'like': ['吃', '喝']}
print(len(dict2)) # 5
13.2、增加和修改操作
语法:
字典[键] = 数据值
1.如果键已经存在,就是修改数据值
2.如果键不存在,就是添加数据(即添加键值对)
# 定义字典 小明 18 爱好
dict = {'name': '小明', 'age': 18, "like": ['吃', "喝"]}
print(dict) # {'name': '小明', 'age': 18, 'like': ['吃', '喝']}
# 1.添加性别信息 sex
dict['sex'] = '男'
print(dict) # {'name': '小明', 'age': 18, 'like': ['吃', '喝'], 'sex': '男'}
# 2.修改年龄为19
dict['age'] = 19
print(dict) # {'name': '小明', 'age': 19, 'like': ['吃', '喝'], 'sex': '男'}
# 3.添加一个爱好,学习 --->本质是向列表添加一个数据
dict['like'].append('学习')
print(dict) # {'name': '小明', 'age': 19, 'like': ['吃', '喝', '学习'], 'sex': '男'}
13.3、删除
-
删除指定的键值对
del 字典[键] 字典.pop('键')
-
清空
字典.clear()
dict = {'name': '小明', 'age': 19, 'like': ['吃', '喝', '学习'], 'sex': '男'}
# 删除 sex 键值对
del dict['sex']
print(dict) # {'name': '小明', 'age': 19, 'like': ['吃', '喝', '学习']}
# 字典.pop('键‘)
dict.pop('age')
print(dict) # {'name': '小明', 'like': ['吃', '喝', '学习']}
# 删除抽烟的爱好
dict['like'].remove('喝')
print(dict) # {'name': '小明', 'like': ['吃', '学习']}
# 清空键值对
dict.clear()
print(dict) # {}
13.4、查询 —根据键获取对应的值
字典中没有下标的概念,想要获取数据值,要使用key(键)来获取
-
使用它字典[键]
字典[键 ] 1.如果键存在 返回键对饮通过的数据值 2.如果键不存在,会报错
-
使用字典.get(键)
字典.get(键,数据值) 1.数据值一般不写,默认是None 返回: 1.如果键存在 返回对应的数据值 2.如果键不存在,返回的是 括号中书写的数据值 一般建议使用get
dict = {'name': '小明', 'age': 19, 'like': ['吃', '喝', '学习']}
# 1 获取名字
print(dict['name']) # 小明
print(dict.get('name')) # 小明
# 2.获取sex性别
# print(dict['sex']) #代码会报错,原因key不存在
print(dict.get('sex')) # None
print(dict.get('sex', '苞米')) # 苞米 # 返回数据值
# 3.获取 第二个爱好
print(dict['like'][1]) # 喝
print(dict.get('like')[1]) # 喝
13.5、字典的遍历
- 对字典的键 进行遍历
for 变量 in 字典:
print(变量) # 变量就是字典的key,键
for 变量 in 字典.keys(): # 字典。keys() 可以获取字典中所有的键
print(变量)
- 对 字典的值 进行遍历
for 变量 in 字典.values(): # 字典.value() 可以获取字典中所有的值
print(变量)
- 对 字典的键值对 进行遍历
# 变量1 就是 键,变量2
for 变量1,变量2 in 字典.items(): # 字典.items() 获取键值对
print(变量1,变量2)
# 定义字典
dict = {'name':'小明','age':18,'sex':'男'}
# 1.遍历字典的键
for i in dict:
print(i) #name age sex
for i in dict.keys():
print(i)
print('—'*15)
# 2.遍历字典的值
for m in dict.values():
print(m) #小明 18 男
print('_'*15)
# 3.遍历键值
for i,m in dict.items():
print(i,m) # name 小明 age 18 sex 男
容器部分总结
# 1.字符串,列表,元组 支持加法运算
str1 = 'hello' +'world' #'hello world'
list1 = [1,2] +[3,4] # [1,2,3,4]
tuple1 = (1,2) + (3,4) # (1,2,3,4)
# 2.字符串,列表,元组支持乘一个数字
'hello' * 3 #'hello hello hello'
[1,2] * 3 #[1,2,1,2,1,2]
(1,2) * 3 # (1,2,1,2,1,2)
# 3.len() 在容器中都可以使用
# 4.in关键字在容器中都可以使用,注意,在字典中判断的是字典的键是否存在