一、字典的介绍
字典:字典是Python的基础数据类型之一:字典可以存储大量数据,关系型数据。
同样是Python中唯一的映射类数据类型。
数据类型的分类:
可变的数据类型:list,dic
不可变的数据类型:str ,int ,bool,tuple
特点:
键值对的形式存在,键:值
字典的键必须是不可变的数据类型。(工作中:都是由 数字或者str组成)
字典的值可以是任意数据类型
优点 :
字典可以存储大量的数据,关系型数据。
查询速度快
注意:
python3.5之前包括3.5版本,字典是无序的。
python3.6开始是有序的。
二、增
方法一:
dic1 = {'name': '太白', 'age': 25, 'sex': 'M'} dic1['sex'] = '男' dic1['name'] = 'alex' # 通过键去增或者改 dic1['job'] = 'it' print(dic1)
方法二:
dic1 = {'name': '太白', 'age': 25, 'sex': 'M'} dic1.setdefault('job','it') dic1.setdefault('name', 'alex') print(dic1)
# setdefault 有次key则不做任何操作但是返回对应值,无此key则添加
结果为:
{'name': '太白', 'age': 25, 'sex': 'M', 'job': 'it'}
三、删
方法一:
dic1 = {'name': '太白', 'age': 25, 'sex': 'M'} # pop 通过键去删除键值对,也返回值。 print(dic1.pop('name')) print(dic1)
结果为:
太白
{'age': 25, 'sex': 'M'}
print(dic1.pop('name1', None)) # None 可以使任意内容
print(dic1.pop('name1', '没有此键。。。'))
结果为:
None
没有此键。。。
方法二:
#clear 清空 dic1 = {'name': '太白', 'age': 25, 'sex': 'M'} dic1.clear() print(dic1)
结果为:
{}
方法三:
# popitem # 删最后一个3.6 随机删除3.5 dic1 = {'name': '太白', 'age': 25, 'sex': 'M'} print(dic1.popitem()) print(dic1)
结果为:
('sex', 'M')
{'name': '太白', 'age': 25}
方法四:
# del # (1) 按照键去删除 dic1 = {'name': '太白', 'age': 25, 'sex': 'M'} del dic1['name'] print(dic1) 结果为: {'age': 25, 'sex': 'M'} # (2) 内存级别的删除字典
dic1 = {'name': '太白', 'age': 25, 'sex': 'M'
del dic1 print(dic1) 结果为: 直接报错
# (1)两个字典 update dic = {'name':'jim','age':18,'sex':'M'} dic2 = {'name':'alex','weight':75} dic.update(dic2) # 将dic2中的所有键值对覆盖并添加到dic中,dic2不变。 print(dic) print(dic2) 结果为: {'name': 'alex', 'age': 18, 'sex': 'M', 'weight': 75} {'name': 'alex', 'weight': 75} # (2) update 可以直接将字符串添加到列表 dic = {'name':'jim','age':18,'sex':'M'} dic.update(a='333', b='666', name='taibai') print(dic) 结果为: {'name': 'taibai', 'age': 18, 'sex': 'M', 'a': '333', 'b': '666'}
四、改
方法一:
dic1 = {'name': '太白', 'age': 25, 'sex': 'M'} dic1['sex'] = '男' dic1['name'] = 'alex' # 通过键去增或者改 dic1['job'] = 'it' print(dic1)
方法二:
# (1)两个字典 update dic = {'name':'jim','age':18,'sex':'M'} dic2 = {'name':'alex','weight':75} dic.update(dic2) # 将dic2中的所有键值对覆盖并添加到dic中,dic2不变。 print(dic) print(dic2) 结果为: {'name': 'alex', 'age': 18, 'sex': 'M', 'weight': 75} {'name': 'alex', 'weight': 75} # (2) update 可以直接将字符串添加到列表 dic = {'name':'jim','age':18,'sex':'M'} dic.update(a='333', b='666', name='taibai') print(dic) 结果为: {'name': 'taibai', 'age': 18, 'sex': 'M', 'a': '333', 'b': '666'}
五、查
方法一:
# 根据键去查
dic1 = {'name': '太白', 'age': 25, 'sex': 'M'} print(dic1['name']) print(dic1['name1']) # 没有该键即直接报错
方法二:
# (2) get方法 dic1 = {'name': '太白', 'age': 25, 'sex': 'M'} print(dic1.get('name')) print(dic1.get('name1')) print(dic1.get('name1','没此键。。。')) # 可以为任意值 结果为: 太白 None 没此键。。。
方法三:
# (3)key方法 dic1 = {'name': '太白', 'age': 25, 'sex': 'M'} print(dic1.keys(), type(dic1.keys())) # 类似于列表的容器中 l1 = list(dic1.keys()) # 可以转化成list print(l1) for key in dic1.keys(): # 可以遍历(查看) print(key) 结果为: dict_keys(['name', 'age', 'sex']) <class 'dict_keys'> ['name', 'age', 'sex'] name age sex
方法四:
# (4)values方法 dic1 = {'name': '太白', 'age': 25, 'sex': 'M'} print(dic1.values()) # 可以转化成list ,可以遍历(查看) print(list(dic1.values())) 结果为: dict_values(['太白', 25, 'M']) ['太白', 25, 'M']
方法五:
# (4)items方法 dic1 = {'name': '太白', 'age': 25, 'sex': 'M'} print(dic1.items()) # 可以转化为list ,可遍历(查看) print(list(dic1.items())) for k, v in dic1.items(): print(k, v) # 分别赋值 结果为: dict_items([('name', '太白'), ('age', 25), ('sex', 'M')]) [('name', '太白'), ('age', 25), ('sex', 'M')] name 太白 age 25 sex M
六、分别赋值
# 分别赋值 # 面试题 a , b = 10,20 a ,b = b,a print(a,b) 结果为: 20 10