day05-Python字典
除了列表以外,字典也许是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_test dict_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