字典(dict)的介绍
字典是 Python 中非常重要的数据类型,字典是无序、可变的,是以"键:值"的形式创建(定义)
和存储的数据集合,在字典中,是以,"键"的形式来获取值的,而不是通过下标的形式。
字典是以{}花括号括起来的数据集合,不同数据间以逗号分隔,每个数据以"键:值"的形
式存储。
字典公式: {key:value, key1:value1, key2:value2}
注意:
1)字典中,"key"不能重复,"value"可以重复;
2)字典中,"key"必须为不可变数据,不能为可变数据;
3)字典中,如果要查找某个值,是通过"key"来进行的,相当于索引;
例如:
正面案例
movies = {"favor": "画皮",
"first_with_gf": "蜡笔小新",
"second_with_gf": "上海堡垒",
"hate": "你的名字",
"cried": "心花怒放",
1: "大话西游",
("love", ):"法拉利",
}
print(movies["favor"]) # 获取最喜欢的电影(key值为字符串)
print(movies[("love",)]) # 获取最喜欢的车(key值为元祖)
print(movies[1]) # 获取key值为1(key值为数字)
以上实例输出结果:
画皮
法拉利
大话西游
# 因为key值要求只能是不可变数据,而元祖、字符串、数字都满足,所以不会报错
反面案例
1)key值为字典时
movies = {{"love":"you"}:"jinyan"}
print(movies[{"love":"you"}])
以上实例输出结果:
Traceback (most recent call last):
File "E:/untitled/test.py", line 1, in <module>
movies = {{"love":"you"}:"jinyan"}
TypeError: unhashable type: 'dict'
2)key值为列表时
movies = {["love"]:"jinyan"}
print(movies[{"love":"you"}])
以上实例输出结果:
Traceback (most recent call last):
File "E:/untitled/test.py", line 1, in <module>
movies = {["love"]:"jinyan"}
TypeError: unhashable type: 'list'
2)key值为集合时
movies = {{"love"}:"jinyan"}
print(movies[{"love":"you"}])
以上实例输出结果:
Traceback (most recent call last):
File "E:/untitled/test.py", line 1, in <module>
movies = {{"love"}:"jinyan"}
TypeError: unhashable type: 'set'
# 因为key值要求只能是不可变数据,而字典、列表、集合都是可变数据,所以都不满足,那么就会报错喽~会报TypeError: unhashable type的错(不可哈希)
字典的操作
字典的操作是根据key-value : 键值对进行的
1)添加元素
例如:
movies = {"favor": "画皮"}
movies["new_key"]="大话西游"
print(movies)
以上实例输出结果:
{'favor': '画皮', 'new_key': '大话西游'}
2)删除---pop()
例如:
movies = {"favor": "画皮"}
movies.pop("favor")
print(movies)
以上实例输出结果:
{}
3) 修改, 已经存在的 key
# 修改和添加的语法是一样的
# 之前没有这个 key , 添加, 有了,就是修改
movies = {"favor": "画皮"}
movies["favor"] = "小花"
print(movies)
以上实例输出结果:
{'favor': '小花'}
4)返回字典中所有的"键" ---keys()
例如:
movies = {"favor": "画皮"}
print(movies.keys())
以上实例输出结果:
dict_keys(['favor'])
5)返回字典中所有的"值" ---values()
例如:
movies = {"favor": "画皮"}
print(movies.values())
以上实例输出结果:
dict_values(['画皮'])
6)以"键:值"的形式返回字典中的元素---items()
例如:
movies = {"favor": "画皮"}
print(movies.items())
以上实例输出结果:
dict_items([('favor', '画皮')])
7) 将一个字典中的数据,更新到另外一个字典中 ---update()
例如:
movies1 ={'a':10,'b':20,'c':30}
movies2 ={'c':50,'d':60,'e':70}
movies1.update(movies2)
print(movies1)
以上实例输出结果:
{'a': 10, 'b': 20, 'c': 50, 'd': 60, 'e': 70}
8)清空字典---clear()
例如:
movies = {'a':100,'b':200,'c':300}
movies.clear()
print(movies)
以上实例输出结果:
{}
9)通过key获取对应的值
方法一:
movies={'id':101,'name':'lucy','age':22}
print(movies["id"])
以上实例输出结果:
101
方法二:get()
例如:
movies={'id':101,'name':'lucy','age':22}
va1 = movies.get('name')
print(va1)
以上实例输出结果:
lucy
10)复制字典---copy()
例如:
movies1 = {'a':100,'b':200,'c':300}
print('movies1=',movies1)
movies2 = movies1.copy()
print('movies2=',movies2)
以上实例输出结果:
movies1= {'a': 100, 'b': 200, 'c': 300}
movies2= {'a': 100, 'b': 200, 'c': 300}