字典
1、字典 dict ,字典中的数据是由键(key)值(value)对组成的(键表示的数据的名字,值就是具体的数据)
2、在字典中一组键值对是一个数据,多个键值对之间使用 逗号隔开
变量 = {key:value,key:value,…}
3、一个字典中的键是唯一的,不能重复的,值可以是任意数据
4、字典中的键一般是字符串,可以是数字,不能是列表
- 定义
# 1、使用 类实例化的方法
my_dict= dict()
print(type(my_dict),my_dict) # <class 'dict'> {}
# dict() 不能转列表和元组,字符串
# 2、直接使用{}定义
# 空字典
my_dict1= {}
print(type(my_dict1),my_dict1) #<class 'dict'> {}
# 非空字典 小明,18,1.71,True 软件工程 大数据 人工智能
my_dict2 = {'name':'小明','age':18,'height':1.71,'is_man':True,'like':['软件工程','大数据','人工智能']}
print(my_dict2) #{'name': '小明', 'age': 18, 'height': 1.71, 'is_man': True, 'like': ['软件工程', '大数据', '人工智能']}
print(len(my_dict2)) # 5
- 增加和修改操作
语法
:字典[键] = 数值
1、如果键已经存在,就是修改数据值
2、如果键不存在,就是添加数据(即添加键值对)
# 定义字典 小明 18 爱好
my_dict = {"name":"小明","age":"18","like":["软件工程","大数据","人工智能"]}
# 1、添加性别信息
my_dict['sex'] ='男'
print(my_dict) # {'name': '小明', 'age': '18', 'like': ['软件工程', '大数据', '人工智能'], 'sex': '男'}
# 2、修改年龄为19
my_dict['age']=19
print(my_dict) #{'name': '小明', 'age': 19, 'like': ['软件工程', '大数据', '人工智能'], 'sex': '男'}
# 3、添加一个爱好 学习
my_dict['like'].append('学习')
print(my_dict) # {'name': '小明', 'age': 19, 'like': ['软件工程', '大数据', '人工智能', '学习'], 'sex': '男'}
# 删除爱好 软件工程
my_dict['like'].remove('软件工程')
print(my_dict) #{'name': '小明', 'age': 19, 'like': ['大数据', '人工智能', '学习'], 'sex': '男'}
# 删除下标为1的爱好
my_dict['like'].pop(1)
print(my_dict) #{'name': '小明', 'age': 19, 'like': ['大数据', '学习'], 'sex': '男'}
- 删除
- 删除指定键值对
del 字典[键] 字典.pop(键) #键必须书写
- 清空
字典.clear()
- 代码案例
# 删除sex键值对 del my_dict['sex'] print(my_dict) # {'name': '小明', 'age': 19, 'like': ['软件工程', '大数据', '人工智能', '学习']} # 字典.pop('键') my_dict.pop('age') print(my_dict) # {'name': '小明', 'like': ['软件工程', '大数据', '人工智能', '学习']} # 删除 爱好(本质操作:在列表中删除 数据值) # 删除爱好 软件工程 my_dict['like'].remove('软件工程') print(my_dict) # {'name': '小明', 'like': ['大数据', '人工智能', '学习']} # 删除下标为1的爱好 my_dict['like'].pop(1) print(my_dict) # {'name': '小明', 'like': ['大数据', '学习']} # 清空键值对 my_dict.clear() print(my_dict) #{}
- 查询-根据键获取对应的值
字典中没有下标的概念,想要获取数据值,要使用 key(键)来获取- 使用
字典[键]
1、如果存在键,返回键对应的数据值
2、如果键不存在,会报错 - 使用
字典.get(键)
1、如果键存在,返回键对应的数据值
2、如果键不存在,返回括号中书写的数据值(None)
一般建议使用get方法 - 代码案例
my_dict = {"name":"小明","age":"18","like":["软件工程","大数据","人工智能"]} # 1、获取 名字 print(my_dict['name']) # 小明 print(my_dict.get('name')) # 小明 print(my_dict.get('name'),'zzz') # 小明 zzz # 2、获取 sex 性别 #print(my_dict['sex']) # 会报错, key不存在 print(my_dict.get('sex')) # None print(my_dict.get('sex','保密')) # 保密 # 3、获取第二个爱好 print(my_dict['like'][1]) # 大数据 print(my_dict.get('like')[1]) # 大数据
- 使用
- 字典的遍历
- 对字典的
键
进行遍历
for 变量 in 字典: print(变量) # 变量就是字典 key,键 for 变量 in 字典.keys(): # 字典.keys() 可以获取字典中所有的键 print(变量)
- 对字典的
值
进行遍历
for 变量 in 字典.values(): print(变量) # 字典.values() 可以获取字典中所有的值
- 对字典的
键值对
进行遍历
for 变量1,变量2 in 字典.items(): # 变量1 为 键,变量2 为 键对应的值 print(变量) # 字典.items() 可以获取键值对
- 代码案例
# 定义字典 my_dict = {'name':'小明','age':18,'sex':'男'} # 1、遍历字典的键 for k in my_dict: print(k) for k in my_dict.keys(): print(k) print('-'*30) # 2、遍历字典的值 for k in my_dict.values(): print(k) print('-'*30) # 3、遍历字典的键值对 for k in my_dict.items(): print(k) for k,v in my_dict.items(): print(k,v) ''' name age sex name age sex ------------------------------ 小明 18 男 ------------------------------ ('name', '小明') ('age', 18) ('sex', '男') name 小明 age 18 sex 男 '''
- 对字典的
容器部分总结
1、字符串、列表、元组 支持加法运算
str1 = 'hello' + ' world' # 'hello world'
llist1 = [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 关键字在容器中都可以使用,注意,在字典中判断的是字典的键是否存在