携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第10天,点击查看活动详情
1、添加元素
如果要向现有的字典添加新的键值对,直接给 key 赋值( 只要是Python 支持的数据类型都可以)即可,前提是key不存在,如果存在就会修改这个键所对应的值。
my_dict = {"name":"万里"}
print(my_dict)
my_dict["age"] = 3
print(my_dict)
my_dict["phone"] = 123456789
print(my_dict)
执行结果:键值对逐个添加进字典中
{'name': '万里'}
{'name': '万里', 'age': 3}
{'name': '万里', 'age': 3, 'phone': 123456789}
2、修改元素
字典中键值对的key是唯一的,要修改键值对,只需要对字典中已存在的key重新赋值即可。
my_dict = {'name': '万里', 'age': 3, 'phone': 123456789}
print(my_dict)
my_dict["age"] = 18
my_dict["phone"] = 987654321
print(my_dict)
执行结果:
{'name': '万里', 'age': 3, 'phone': 123456789}
{'name': '万里', 'age': 18, 'phone': 987654321}
3、删除元素
使用del关键字加键值对的key,可以删除这个键值对:
del my_dict["age"]
print(my_dict)
执行结果:
{'name': '万里', 'phone': 987654321}
del关键字后面接字典,可以之间删除字典:
del my_dict
4、in 和 not in
in 和 not in可以判断键值对是否存在或是否不存在于字典中,符合条件返回True,反之返回False:
my_dict = {'name': '万里', 'age': 3, 'phone': 123456789}
print("name" in my_dict)
print("addr" in my_dict)
print("phone" not in my_dict)
执行结果:
True
False
False
5、字典的遍历
keys() ,values(),items()
keys() 方法用于获取字典中所有的键(key)
values() 方法用于获取字典中所有键对应的值(value)
items() 用于获取字典中所有的键值对(key-value)
my_dict = {'name': '万里', 'age': 3, 'phone': 123456789}
print(list(my_dict.keys()))
print(list(my_dict.values()))
print(list(my_dict.items()))
执行结果:把返回的数据转换成列表类型
['name', 'age', 'phone']
['万里', 3, 123456789]
[('name', '万里'), ('age', 3), ('phone', 123456789)]
对遍历返回的结果进行for循环:
my_dict = {'name': '万里', 'age': 3, 'phone': 123456789}
for key in my_dict.keys():
print(key)
print("===================")
for value in my_dict.values():
print(value)
print("===================")
for key,value in my_dict.items():
print("key:",key,"value:",value)
执行结果:
name
age
phone
===================
万里
3
123456789
===================
key: name value: 万里
key: age value: 3
key: phone value: 123456789
6、内置方法
copy()
copy() 函数可以对字典进行拷贝,也即返回一个具有相同键值对的新字典。
my_dict = {'name': '万里', 'age': 3, 'like': ["写代码","看电影","跑步"]}
my_dict1 = my_dict.copy()
print(my_dict)
print(my_dict1)
执行结果:对字典my_dict进行浅拷贝,返回一个新的字典my_dict1
{'name': '万里', 'age': 3, 'like': ['写代码', '看电影', '跑步']}
{'name': '万里', 'age': 3, 'like': ['写代码', '看电影', '跑步']}
说明:copy()方法的拷贝原理既有深拷贝也有浅拷贝,
- 浅拷贝:copy() 方法只会对最表层的键值对进行深拷贝,最表层的键值对在my_dict字典中指的是name和age两个key对应的值,拷贝时新字典my_dict1 会新开辟一块内存存放
{'name': '万里', 'age': 3}这两个值, - 深拷贝:copy() 方法对列表类型的值做的是深拷贝,因此新字典 my_dict1 中的
'like': ['写代码', '看电影', '跑步']的值不是自己独有,而是和 my_dict 共有。
my_dict = {'name': '万里', 'age': 3, 'like': ["写代码","看电影","跑步"]}
my_dict1 = my_dict.copy()
#my_dict添加一个键值对
my_dict['addr'] = '广东'
print(my_dict)
print(my_dict1)
执行结果:因为my_dict和my_dict1在表层的键值对是深拷贝,所以my_dict新添加一个键值对不会影响到my_dict1
{'name': '万里', 'age': 3, 'like': ['写代码', '看电影', '跑步'], 'addr': '广东'}
{'name': '万里', 'age': 3, 'like': ['写代码', '看电影', '跑步']}
当修改字典中列表类型的值时,因为是共享的,所以my_dict和my_dict1都会受影响
my_dict['like'].remove("写代码")
print(my_dict)
print(my_dict1)
执行结果:
{'name': '万里', 'age': 3, 'like': ['看电影', '跑步'], 'addr': '广东'}
{'name': '万里', 'age': 3, 'like': ['看电影', '跑步']}
update()
把一个字典的键值对更新到另一个字典里,
-
如果被更新的字典中已经有要更新的键,那么这个键对应的值会被覆盖;
-
如果被更新的字典中没有要更新的键,则该键值对会被添加进去。
把字典hong中的键值对更新到字典ming中:
ming = {'name': '万里', 'age': 3, 'phone': 123456789}
hong = {'name': '万里', 'age': 19, 'phone': 123456789,'addr':'广东'}
ming.update(hong)
print(ming)
执行结果:
{'name': '万里', 'age': 19, 'phone': 123456789, 'addr': '广东'}