Python3.5——字典的使用
来源:互联网 发布:编写软件 编辑:程序博客网 时间:2024/06/05 04:13
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)取字典里面的元素通过key:key必须是唯一的。
(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:ZhengzhengLiuinstrument_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
阅读全文
1 0
- Python3.5——字典的使用
- Python3 字典使用上的一个小细节
- Python3.5基础——函数的定义与使用
- Python3字典
- python3--字典
- Python3 字典
- Python3 字典
- Python3-字典
- python3.5——matplotlib模块使用
- Python3.5 venv的使用
- python3之python的核心数据类型(字典)
- python3中字符串、列表、字典的排序
- python3使用operator.itemgetter对字典进行排序
- python3 web接口 字典里边嵌字典和数组字典的封装
- 【笔记】5、初学python3网络爬虫——正则表达式的基本使用
- Python3.5基础——NumPy模块的使用(上)
- Python3.5基础——NumPy模块的使用(下)
- python3.5使用走过的弯路
- UVA 10652 Board Wrapping
- bzoj2405: 数字
- 大牛对ACM入门菜鸟的一些话
- 2017第15届中国国际机床展览会(CIMT)会刊(参展商名录)
- 集成学习之Adaboost算法原理小结
- Python3.5——字典的使用
- git 远程库拉代码
- 热插拔与非热插拔的区别
- hdu1232畅通工程(并查集裸题)
- android开发进阶图谱
- 数据提取(2):pandas库入门
- PAT 1052. Linked List Sorting (25)
- 解决jemeter做接口测试时响应数据中文显示为乱码或者Unicode码的问题
- c语言文件操作函数