Python3.5——字典的使用

xiaoxiao2021-02-28  120

1、字典的定义:字典是一种key-value(关键字/索引--值)的数据类型,像平时用的字典功能类似,可以通过字母或偏旁、笔画等查找对应页里面的详细内容。

语法:

info = { 'stu1101':"Lan Xiang", 'stu1102':"Xiao Xiang", 'stu1103':"Wang Shi" } print(info) #运行结果: #{'stu1102': 'Xiao Xiang', 'stu1103': 'Wang Shi', 'stu1101': 'Lan Xiang'}2、字典的特征:

(1)无序:打印的结果没有按照顺序,字典没有下标,没有位置信息。

(2)取字典里面的元素通过keykey必须是唯一的。

(3)字典的键不可以使用可变类型,如:列表等。

info = { 'stu1101':"Lan Xiang", 'stu1102':"Xiao Xiang", 'stu1103':"Wang Shi" } print(info) print(info["stu1101"]) #运行结果: #{'stu1101': 'Lan Xiang', 'stu1103': 'Wang Shi', 'stu1102': 'Xiao Xiang'} #Lan Xiang

3、字典的操作应用:

(1)修改字典里面的内容(通过键key)

info = { 'stu1101':"Lan Xiang", 'stu1102':"Xiao Xiang", 'stu1103':"Wang Shi" } print(info) info["stu1101"] = "蓝翔" #修改 print(info) #运行结果: #{'stu1102': 'Xiao Xiang', 'stu1101': 'Lan Xiang', 'stu1103': 'Wang Shi'} #{'stu1102': 'Xiao Xiang', 'stu1101': '蓝翔', 'stu1103': 'Wang Shi'}

(2)向字典里面添加新的内容(通过键key)

info = { 'stu1101':"Lan Xiang", 'stu1102':"Xiao Xiang", 'stu1103':"Wang Shi" } print(info) info["stu1104"] = "Tian Xin" #添加 print(info) #运行结果: #{'stu1101': 'Lan Xiang', 'stu1103': 'Wang Shi', 'stu1102': 'Xiao Xiang'} #{'stu1101': 'Lan Xiang', 'stu1103': 'Wang Shi', 'stu1104': 'Tian Xin', 'stu1102': 'Xiao Xiang'}

(3)删除字典里面的内容(通过键key)——del:del是Python里面内置通用的方法

info = { 'stu1101':"Lan Xiang", 'stu1102':"Xiao Xiang", 'stu1103':"Wang Shi" } print(info) del info["stu1102"] #删除 print(info) #运行结果: #{'stu1101': 'Lan Xiang', 'stu1102': 'Xiao Xiang', 'stu1103': 'Wang Shi'} #{'stu1101': 'Lan Xiang', 'stu1103': 'Wang Shi'}        删除字典里面的内容(通过键key)——定调用 .pop(要删除的key)方法

info = { 'stu1101':"Lan Xiang", 'stu1102':"Xiao Xiang", 'stu1103':"Wang Shi" } print(info) info.pop("stu1102") #删除 print(info) #运行结果: #{'stu1103': 'Wang Shi', 'stu1101': 'Lan Xiang', 'stu1102': 'Xiao Xiang'} #{'stu1103': 'Wang Shi', 'stu1101': 'Lan Xiang'} 随机删除字典里面的内容——调用 .popitem()方法

info = { 'stu1101':"Lan Xiang", 'stu1102':"Xiao Xiang", 'stu1103':"Wang Shi", 'stu1104':"Tian Xin" } print(info) info.popitem() #随机删除 print(info) #运行结果: #{'stu1103': 'Wang Shi', 'stu1104': 'Tian Xin', 'stu1102': 'Xiao Xiang', 'stu1101': 'Lan Xiang'} #{'stu1104': 'Tian Xin', 'stu1102': 'Xiao Xiang', 'stu1101': 'Lan Xiang'}(4) 查找字典里面的内容(通过键key):能够查找到直接返回查找内容,不能够查找到返回None——调用 .get(key)方法

info = { 'stu1101':"Lan Xiang", 'stu1102':"Xiao Xiang", 'stu1103':"Wang Shi", 'stu1104':"Tian Xin" } print(info.get('stu1105')) #查找 print(info.get('stu1104')) #运行结果: #None #Tian Xin(5) 判断某个键值key是否存在字典里:key in 字典

info = { 'stu1101':"Lan Xiang", 'stu1102':"Xiao Xiang", 'stu1103':"Wang Shi", 'stu1104':"Tian Xin" } print('stu1101' in info) print('stu1105' in info) #运行结果: #True #False4、多级字典的嵌套及操作(注: key尽量不要用中文) #!/usr/bin/env python # -*- coding:utf-8 -*- # Author:ZhengzhengLiu instrument_catalog = { "National":{ "urheen":["stringed instrument"], "flute":["pipe"], "zither":["stringed instrument"] }, "Western":{ "piano":["clavier"], "guitar":["stringed instrument","I like it"], "violin":["stringed instrument"] } } instrument_catalog["Western"]["guitar"][1] = "I like it very much" #修改嵌套字典里的内容 print(instrument_catalog) #运行结果: #['stringed instrument'], 'urheen': ['stringed instrument'], 'flute': ['pipe']}, 'Western': {'violin': ['stringed instrument'], 'piano': ['clavier'], 'guitar': ['stringed instrument', 'I like it very much']}}

5、字典的其他操作

(1)打印字典里面的值(value):调用.values()方法

info = { 'stu1101':"Lan Xiang", 'stu1102':"Xiao Xiang", 'stu1103':"Wang Shi", 'stu1104':"Tian Xin" } print(info.values()) #运行结果: #dict_values(['Tian Xin', 'Xiao Xiang', 'Wang Shi', 'Lan Xiang'])

(2)打印字典里面的key:调用.keys()方法

info = { 'stu1101':"Lan Xiang", 'stu1102':"Xiao Xiang", 'stu1103':"Wang Shi", 'stu1104':"Tian Xin" } print(info.keys()) #运行结果: #dict_keys(['stu1103', 'stu1104', 'stu1101', 'stu1102'])

(3)在字典里面找key,找到返回值;找不到创建新的键值:调用.setdefault()方法

info = { 'stu1101':"Lan Xiang", 'stu1102':"Xiao Xiang", 'stu1103':"Wang Shi", 'stu1104':"Tian Xin" } info.setdefault("stu1104","Li Yuan") print(info) info.setdefault("stu1105","Li Yuan") print(info) #运行结果: #{'stu1101': 'Lan Xiang', 'stu1104': 'Tian Xin', 'stu1102': 'Xiao Xiang', 'stu1103': 'Wang Shi'} #{'stu1101': 'Lan Xiang', 'stu1105': 'Li Yuan', 'stu1104': 'Tian Xin', 'stu1102': 'Xiao Xiang', 'stu1103': 'Wang Shi'}(4) 字典的更新,若有交叉内容,进行覆盖原始值;若有新内容则添加:调用 .update()方法

info = { 'stu1101':"Lan Xiang", 'stu1102':"Xiao Xiang", 'stu1103':"Wang Shi", 'stu1104':"Tian Xin" } info1 = { 'stu1101':"Lu Li", 3:5, 4:6 } info.update(info1) print(info) #运行结果: #{3: 5, 4: 6, 'stu1104': 'Tian Xin', 'stu1101': 'Lu Li', 'stu1102': 'Xiao Xiang', 'stu1103': 'Wang Shi'}(5) 将字典转成列表:调用 .items()方法

info = { 'stu1101':"Lan Xiang", 'stu1102':"Xiao Xiang", 'stu1103':"Wang Shi", 'stu1104':"Tian Xin" } print(info.items()) #运行结果: #dict_items([('stu1104', 'Tian Xin'), ('stu1102', 'Xiao Xiang'), ('stu1103', 'Wang Shi'), ('stu1101', 'Lan Xiang')])(6) 初始化一个新的字典:调用 dict.fromkeys()方法

c = dict.fromkeys([1,2,3],"test") print(c) #运行结果: #{1: 'test', 2: 'test', 3: 'test'}注: dict.fromkeys()方法初始化的字典里面的值的地址是由新创建的所有key共享,出现多级嵌套时,通过修改其中一个键值的内容,其他的键值也跟着改变。 d = dict.fromkeys([3,4,5],[2,{"name":"Liu"},345]) print(d) d[5][1]["name"] = "Sun" print(d) #运行结果: #{3: [2, {'name': 'Liu'}, 345], 4: [2, {'name': 'Liu'}, 345], 5: [2, {'name': 'Liu'}, 345]} #{3: [2, {'name': 'Sun'}, 345], 4: [2, {'name': 'Sun'}, 345], 5: [2, {'name': 'Sun'}, 345]}6、字典的循环

(方法一):建议使用(更高效)

info = { 'stu1101':"Lan Xiang", 'stu1102':"Xiao Xiang", 'stu1103':"Wang Shi", 'stu1104':"Tian Xin" } for i in info: print(i,info[i]) #i是键key,info[i]是键值 #运行结果: #stu1103 Wang Shi #stu1104 Tian Xin #stu1102 Xiao Xiang #stu1101 Lan Xiang(方法二):

info = { 'stu1101':"Lan Xiang", 'stu1102':"Xiao Xiang", 'stu1103':"Wang Shi", 'stu1104':"Tian Xin" } for k,v in info.items(): #会先把dict转成list,数据大时莫用 print(k,v) #运行结果: #stu1101 Lan Xiang #stu1102 Xiao Xiang #stu1104 Tian Xin #stu1103 Wang Shi

转载请注明原文地址: https://www.6miu.com/read-27339.html

最新回复(0)