字典
字典是一种组合数据,没有顺序的组合数据,数据以键值对形式出现
字典中的数据每个都有键值对组成,即kv对
- key: 必须是可哈希的值,比如int,string,float,tuple;但是list,set,dict 不行
- value: 任何值
创建字典
# 创建空字典 dict1 = {} print('dict1的数据类型为:',type(dict1)) print('dict1 :',dict1) # 创建存在数据的字典 dict2 = {1:'Apple',2:'OnePlus'} print('dict2 :',dict2) # 创建多嵌套字典 dict3 = {'area':'beijing','user':{'user1':{'name':'wilson','tel':13800},'user2':{'name':'tom','tel':138000}}} print('dict3的数据类型为:',type(dict3)) print('dict3 :',dict3)
输出结果如下:
dict1的数据类型为: <class 'dict'> dict1 : {} dict2 : {1: 'Apple', 2: 'OnePlus'} dict3的数据类型为: <class 'dict'> dict3 : {'area': 'beijing', 'user': {'user1': {'name': 'wilson', 'tel': 13800}, 'user2': {'name': 'tom', 'tel': 138000}}}
上面的多嵌套字典可以看出,输出结果较长,查看较为困难,这时候需要导入pprint模块,方面查看数据
import pprint dict4 = {'area':'beijing','user':{'user1':{'name':'wilson','tel':13800},'user2':{'name':'tom','tel':138000}}} pprint.pprint(dict4)
输出格式如下:
{'area': 'beijing', 'user': {'user1': {'name': 'wilson', 'tel': 13800}, 'user2': {'name': 'tom', 'tel': 138000}}}
访问字典数据
# 查看key为1的值 dict5 = {1:'Apple',2:'OnePlus'} print('key为1的值 :',dict5[1]) # 查看user2的tel值 dict6 = {'area':'beijing','user':{'user1':{'name':'wilson','tel':13800},'user2':{'name':'tom','tel':138000}}} print('user2的tel值 :',dict6['user']['user2']['tel'])
输出结果如下:
key为1的值 : Apple user2的tel值 : 138000
更改字典中的值
dict7 = {1:'Apple',2:'OnePlus'} print('dict7-前 :',dict7) dict7[2] = 'Iphone' # 修改key=2的值为'Iphone' print('dict7-后 :',dict7)
输出结果如下:
dict7-前 : {1: 'Apple', 2: 'OnePlus'} dict7-后 : {1: 'Apple', 2: 'Iphone'}
删除字典元素
dict8 = {1:'Apple',2:'OnePlus'} print('dict8-前 :',dict8) del dict8[2] # 删除key=2的键值对 print('dict8-后 :',dict8)
输出结果如下:
dict8-前 : {1: 'Apple', 2: 'OnePlus'} dict8-后 : {1: 'Apple'}
成员检测--in , not in
成员检测检测的是key内容
dict9 = {1:'Apple',2:'OnePlus'} print('1 在字典中:',1 in dict9) # 检测 1 是否在dict9中 print('Apple在字典中:','Apple' in dict9) # 检测 Apple 是否在dict9中
输出结果如下:
1 在字典中: True Apple在字典中: False
字典的常用方法
1、item()
以列表返回可遍历的(键, 值) 元组数组
dict10 = {1:'Apple',2:'OnePlus'} d1 = dict10.items() print('d1的数据类型:',type(d1)) print('d1 :',d1)
d1的数据类型: <class 'dict_items'> d1 : dict_items([(1, 'Apple'), (2, 'OnePlus')])
2、keys
返回一个迭代器,可以使用 list() 来转换为列表
dict10 = {1:'Apple',2:'OnePlus'} d2 = dict10.keys() print('d2的数据类型:',type(d2)) print('d2 :',d2)
d2的数据类型: <class 'dict_keys'> d2 : dict_keys([1, 2])
3、keys()
返回一个迭代器,可以使用 list() 来转换为列表
dict10 = {1:'Apple',2:'OnePlus'} d3 = dict10.values() print('d3的数据类型:',type(d3)) print('d3 :',d3)
d3的数据类型: <class 'dict_values'> d3 : dict_values(['Apple', 'OnePlus'])
4、get()
返回指定键的值,如果值不在字典中返回默认值。
dict10 = {1:'Apple',2:'OnePlus'} d4 = dict10.get(1) d5 = dict10.get(3,None) print('1 的值为 :',d4) print('3 的值为 :',d5)
1 的值为 : Apple 3 的值为 : None