除了列表以外,字典也许是Python中最灵活的内置数据类型结果。如果把列表看做是有序的对象集合,那么就可以把字典看成无序的对象集合。它们主要的差别在于有序无序、字典是通过键值对来存储数据,key必须是唯一的,so字典天生去重。
1. 创建字典
dict_test = { 'name':'wl', 'age':23, 'sex':'man', 'love':'eat food'}print(dict_test)# {'sex': 'man', 'love': 'eat food', 'age': 23, 'name': 'wl'}
2. 增加字典的元素
dict_test = { 'name':'wl', 'age':23, 'sex':'man', 'love':'eat food'}dict_test['school'] = '江南2中'print(dict_test)# {'school': '江南2中', 'name': 'wl', 'love': 'eat food', 'sex': 'man', 'age': 23}
3. 修改字典的元素
dict_test = { 'name':'wl', 'age':23, 'sex':'man', 'love':'eat food'}dict_test['name'] = '张小燕'print(dict_test)# {'love': 'eat food', 'name': '张小燕', 'sex': 'man', 'age': 23}
4. 删除字典中的元素
4.1 使用pop()方法
dict_test = { 'name':'wl', 'age':23, 'sex':'man', 'love':'eat food'}p= dict_test.pop('sex')print(p,dict_test)# man {'name': 'wl', 'age': 23, 'love': 'eat food'}
4.2 使用del进行删除
dict_test = { 'name':'wl', 'age':23, 'sex':'man', 'love':'eat food'}del dict_test['sex']print(dict_test)# {'age': 23, 'love': 'eat food', 'name': 'wl'}# del dict_test删除整个字典
4.3 随机删除
dict_test = { 'name':'wl', 'age':23, 'sex':'man', 'love':'eat food'}dict_test.popitem() # 随机删除一个元素print(dict_test)# {'age': 23, 'name': 'wl', 'sex': 'man'}
5. 查找
5.1 使用get()方法查找
dict_test = { 'name':'wl', 'age':23, 'sex':'man', 'love':'eat food'}print(dict_test.get('love'))# eat food
5.2 使用key值确定元素
dict_test = { 'name':'wl', 'age':23, 'sex':'man', 'love':'eat food'}print(dict_test['love'])# eat food
6. 其他的使用方法
6.1 dict.values()方法
以列表的形式返回字典中的值,列表中可包含重复元素
dict_test = { 'name':'wl', 'age':23, 'sex':'man', 'love':'eat food'}print(dict_test.values())# dict_values(['wl', 'man', 23, 'eat food'])
6.2 dict.keys()
以列表的形式返回字典中的key
dict_test = { 'name':'wl', 'age':23, 'sex':'man', 'love':'eat food'}print(dict_test.keys())# dict_keys(['name', 'sex', 'love', 'age'])
6.3 dict.setdefault()方法
dict_test = { 'name':'wl', 'age':23, 'sex':'man', 'love':'eat food'}# 如果字典中包含有给定键,则返回该键对应的值,否则返回为该键设置的值。 a = dict_test.setdefault('namqe','zxl')print(a)# zxl
6.4 增加合并字典
dict_test = { 'name':'wl', 'age':23, 'sex':'man', 'love':'eat food'}dict1 = { 'namqe':'zxl'}dict_test.update(dict1)print(dict_test)# {'sex': 'man', 'age': 23, 'love': 'eat food', 'name': 'wl', 'namqe': 'zxl'}
6.5 dict.items()
所有的字典项以列表的方式返回,列表中的每一项都有(k,v),无顺序。
dict_test = { 'name':'wl', 'age':23, 'sex':'man', 'love':'eat food'}print(dict_test.items())# dict_items([('name', 'wl'), ('love', 'eat food'), ('age', 23), ('sex', 'man')]) for k,v in dict_test.items(): print(k,v)
#age 23 #name wl #love eat food #sex man
6.6 清空字典
dict_test = { 'name':'wl', 'age':23, 'sex':'man', 'love':'eat food'}dict_test.clear()print(dict_test)# {}
6.7 字典的复制
(1)dict1 = dict2(2)dict.copy()dict_test = { 'name':'wl', 'age':23, 'sex':'man', 'love':'eat food'}dict_test1 = dict_testdict_test.pop('age')print(dict_test1)# {'love': 'eat food', 'name': 'wl', 'sex': 'man'}
6.8 enumerate
dict_test = { 'name':'wl', 'age':23, 'sex':'man', 'love':'eat food'}for k,v in enumerate(dict_test): print(k,v)# 0 age# 1 name# 2 love# 3 sex