Python_字典
一.什么是字典
字典是python里的一种数据类型,特点是元素的无序性,和键key的唯一性。字典的创建方法是{key:values},字典里的键key只能是不可变的数据类型(整型,字符串或者是元组),值values可以是任何数据类型。字典里的一组key:values叫做一个键值对item。
二.字典的基本操作
创建一个字典
dic = {'name':'joy','age':'28','hobby':{'girl_name':'xiaohan','age':23},'is_handsome':True}
另外一种创建方式,通过关键字创建 dict
代码段
dic2 = dict((('name','joy'),))
print("元组的方式创建字典:",dic2)
dic3 = dict([['name','joy'],])
print("列表的方式创建字典:",dic3)
输出结果
元组的方式创建字典: {'name': 'joy'}
列表的方式创建字典: {'name': 'joy'}
三.查看字典 keys、values、items
代码段
dic = {'name':'chenzhang','age':27}
dic1 = dic['age'] #
print("通过键去取值:",dic1)
dic5 = {'age':18,'name':'joy','hobby':'boy'}
print("通过键去取值:",dic5['hobby'])
dic6 = {'age':18,'name':'joy','hobby':'boy'}
print("使用列表的格式,查看字典的键:",list(dic6.keys()))
print("使用列表的格式,查看字典的值:",list(dic6.values()))
print("用列表的格式,查看字典的键值对:",list(dic6.items()))
输出结果
通过键去取值: 27
通过键去取值: boy
使用列表的格式,查看字典的键: ['age', 'name', 'hobby']
使用列表的格式,查看字典的值: [18, 'joy', 'boy']
用列表的格式,查看字典的键值对: [('age', 18), ('name', 'joy'), ('hobby', 'boy')]
四.新增键值对 setdefault
代码段
dic4 = {'name':'joy'}
dic4['age'] = 18
print("新增键值对:",dic4)
ret = dic4.setdefault('age',32)
print("如果键存在,不修改键值对,返回原有值:",ret)
ret = dic4.setdefault('shengao',168)
print("如果键不存在,新增键值对:",dic4)
输出结果
新增键值对: {'name': 'joy', 'age': 18}
如果键存在,不修改键值对,返回原有值: 18
如果键不存在,新增键值对: {'name': 'joy', 'age': 18, 'shengao': 168}
五.修改字典 fromkeys
代码段
dic7 = {'name':'陈璋','age':'23','hobby':'girl'}
dic7['age'] = 27 # 通过键去修改值
print("通过键去修改值:",dic7)
dic13=dict.fromkeys(['host1','host2','host3'],'test')
print("使用formkeys方法,给每一键加上(test)值:",dic13)
dict14= dict.fromkeys(['host1','host2','host3'],['test1','test2'])
print("使用formkeys方法,给每一键加上(列表)值:",dict14)
dict14['host2'][1]= 'test3'
print("改字典中host2中test2的值:",dict14)
输出结果
通过键去修改值: {'name': '陈璋', 'age': 27, 'hobby': 'girl'}
使用formkeys方法,给每一键加上(test)值: {'host1': 'test', 'host2': 'test', 'host3': 'test'}
使用formkeys方法,给每一键加上(列表)值: {'host1': ['test1', 'test2'], 'host2': ['test1', 'test2'], 'host3': ['test1', 'test2']}
改字典中host2中test2的值: {'host1': ['test1', 'test3'], 'host2': ['test1', 'test3'], 'host3': ['test1', 'test3']}
六.更新 update
代码段
dic8 = {'age':18,'name':'joy','hobby':'girl'}
dic9 = {'shengao':180,'name':'joychen'}
dic8.update(dic9)
print("更新,修改已有的键值对,增加没有的键值对:",dic8)
输出结果
更新,修改已有的键值对,增加没有的键值对: {'age': 18, 'name': 'joychen', 'hobby': 'girl', 'shengao': 180}
七.删除 clear pop popitem del
代码段
dic10 = {'name':'joychen','age':18,'class':1}
dic10.clear()
print("清空字典:",dic10)
dic12 = {'name':'joychen','age':18,'class':1}
ret = dic12.pop('age')
print("删除字典中指定键值对,并返回该键值对的值:",ret)
print("删除后的结果:",dic12)
dic13 = {'name':'joychen','age':18,'class':1}
a = dic13.popitem()
print("随机删除某组键值对,并以元组方式返回值:",a)
print("删除后的结果:",dic13)
del dic13 # 删除这个字典
输出结果
清空字典: {}
删除字典中指定键值对,并返回该键值对的值: 18
删除后的结果: {'name': 'joychen', 'class': 1}
随机删除某组键值对,并以元组方式返回值: ('class', 1)
删除后的结果: {'name': 'joychen', 'age': 18}
七.多层嵌套大字典查询
代码段
# 种类大字典
class_dict = {"蔬菜":{"苦瓜":["很苦","有降火功效"],
"南瓜":["比较甜","个头也比较大"],},
"水果":{"西瓜":["很甜","形状是圆的"],
"橘子":["清甜可口","包含多种维生素"]},
"电器":{"空调":["凉爽","耗电"],
"洗衣机":["快速洗衣","节省时间"],
"微波炉":["快速加热","方便快捷"]},
"交通":{"自行车":["上坡费劲","适合短程"],
"摩托车":["速度快","不安全"],
"汽车":["适应多种天气","价格昂贵"]}
}
aa = class_dict["交通"]["摩托车"][1] #能过键去找值,最后通过索引号找到对应的信息
print(aa)
输出结果
不安全
浙公网安备 33010602011771号