基础数据类型--字典
Python字典是另一种可变容器模型,且可存储任意类型对象,如字符串、数字、元组等其他容器模型。
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:
键必须是唯一的,但值则不必。
d = {key1 : value1, key2 : value2 }
字典:增
dic = {'name': '老男孩','age': 10000, 'sex': '男'} dic['hobby'] = 'old_girl' # 有key则修改,无则增加 dic['name'] = 'alex' print(dic) {'name': 'alex', 'age': 10000, 'sex': '男', 'hobby': 'old_girl'}
setdefault() 有则不修改,无则增加。
dic = {'name': '老男孩','age': 10000,'sex': '男'} dic.setdefault('sex','女') # 有key则不修改,无则增加
print(dic) {'name': '老男孩', 'age': 10000, 'sex': '男'}
字典:删
pop() 按照key删除元素,并返回删除的元素。
dic = {'name': '老男孩','age': 10000,'sex': '男'} print(dic.pop('name')) # 删除key为name的元素,并将其返回。
dic.pop('name1',None) # 删除没有的key,未避免报错,可以设置默认返回值。 print(dic) 老男孩 {'age': 10000, 'sex': '男'}
popitem() 在python3.6之前为随机删除字典中的一个元素,python3.6则是删除字典中最后一个元素。
dic = {'name': '老男孩','age': 10000,'sex': '男'} print(dic.popitem()) print(dic) ('sex', '男') {'name': '老男孩', 'age': 10000}
clear() 清空字典。
dic = {'name': '老男孩','age': 10000,'sex': '男'} dic.clear() print(dic) {}
del 1,删除整个字典。2,按照键去删除键值对。
dic = {'name': '老男孩','age': 10000,'sex': '男'} del dic['name'] print(dic)
del dic # 删除整个字典 print(dic) {'age': 10000, 'sex': '男'} NameError: name 'dic' is not defined
字典:改
dic = {'name': '老男孩','age': 10000,'sex': '男'} dic['name'] = 'alex' # 无责增加,有责修改。 print(dic) {'name': 'alex', 'age': 10000, 'sex': '男'}
dic = {'name': '老男孩','age': 10000,'sex': '男'} dic = {"name": "jin", "age": 18,"sex": "male"} dic2 = {"name": "alex", "weight": 75} dic2.update(dic) # 将dic里面的键值对覆盖并更新到dic2中,dic不变 。 print(dic) # {'name': 'jin', 'age': 18, 'sex': 'male'} print(dic2) # {'name': 'jin', 'weight': 75, 'age': 18, 'sex': 'male'} {'name': 'jin', 'age': 18, 'sex': 'male'} {'name': 'jin', 'weight': 75, 'age': 18, 'sex': 'male'}
列表:查
get() 查找时如果没有此key 不会报错。
dic = {"name": "jin", "age": 18,"sex": "male"}
print(dic['name1'])
print(dic.get('name1','没有此键...')) #设置查询key不存在时,的返回值
jin
没有此键...
keys() 返回字典中的所有key
dic = {"name": "jin", "age": 18,"sex": "male"} for i in dic.keys(): print(i) name age sex
values() 返回字典中的所有值
dic = {"name": "jin", "age": 18,"sex": "male"} print(dic.values()) dict_values(['jin', 18, 'male'])
items() 返回可遍历的键, 值对
dic = {"name": "jin", "age": 18,"sex": "male"} for k, v in dic.items(): print(k, v) name jin age 18 sex male
坑: 再循环一个字典时,不要改变字典的大小,这样会影响结果。
dic = {'k1': 'v1', 'k2': 'v2', 'k3':'v3', 'name':'alex'} for k in dic: if 'k' in k: dic.pop(k) RuntimeError: dictionary changed size during iteration