Python第六章 字典
字典的定义和访问
1、字典的定义和访问
字典就是键值对的集合。 定义集合要使用花括号{}
xName = { key:value,key:value }
xName我们自己定义
key可以是数字或者字符串类型(也可以是布尔类型)
value可以是任意类型的数据
代码段1:
# 字典的定义:键值对stu = {'name':'马瑞鹏','age':20,'gender':'男'}# 字典的使用print(stu['name'])print(stu['age'])print(stu['gender'])
运行结果:
马瑞鹏
20
男
2、字典数据的添加、删除、修改和字典列表的区别
访问数据stu1[‘name’]
添加键值对
创建空字典
修改值
删除键值对 del() del
代码段2:
# 字典的定义:键值对stu = {'name':'马瑞鹏','age':20,'gender':'男'}# 字典的添加(添加rank,排名是1)stu['rank'] = 1print(stu)# 修改年龄stu['age'] = 18print(stu)del stu['age']print(stu)
运行结果:
{'name': '马瑞鹏', 'age': 20, 'gender': '男', 'rank': 1}
{'name': '马瑞鹏', 'age': 18, 'gender': '男', 'rank': 1}
{'name': '马瑞鹏', 'gender': '男', 'rank': 1}
字典和列表的区别:
1、列表是通过自动的索引来访问的;字典是通过自己定义的key键来访问的
2、列表里面的数据是有序的,它的顺序决定了访问它的索引;字典里面的键值对是无序的,是通过自定义的key来访问的(键不能重复,重复会被覆盖)
有序和无序不单体现在定义的时候,也体现在存储在计算机内存上
3、一行定义和多行定义
代码段1:
# 字典的定义可以多行stu = {'name':'马瑞鹏','age':20,'gender':'男'}# 字典的添加(添加rank,排名是1)print(stu)
运行结果:{'name': '马瑞鹏', 'age': 20, 'gender': '男'}
代码段2:
l1 = ['Maruipeng','chenyijie','zhangwanjing']l2 = ['Maruipeng','chenyijie','zhangwanjing','Maruipeng','chenyijie','zhangwanjing''Maruipeng','chenyijie','zhangwanjing''Maruipeng','chenyijie','zhangwanjing']print(l1)print(l2)
运行结果:
['Maruipeng', 'chenyijie', 'zhangwanjing']
['Maruipeng', 'chenyijie', 'zhangwanjing', 'Maruipeng', 'chenyijie', 'zhangwanjingMaruipeng', 'chenyijie', 'zhangwanjingMaruipeng', 'chenyijie', 'zhangwanjing']
代码段3:
# String类型如果要多行注释需要加\str = "ssbsbjskAJBSJKAAAAAAAAAAAAAAAAAAAA" \"SBJAKSBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" \"BSJKKKKKKKK" \"BSJKKKKKKKKK"print(str)
运行结果:
ssbsbjskAJBSJKAAAAAAAAAAAAAAAAAAAASBJAKSBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBSJKKKKKKKKBSJKKKKKKKKK
列表和字典嵌套使用
嵌套使用:
列表的元素可以是某个字典,字典的键值对中的值可以是一个列表
列表里面嵌套字典:
# 列表的定义可以多行 stu = {'name':'马瑞鹏','age':20,'gender':'男'} students = [{'name':'马瑞鹏','age':20,'gender':'男'}, {'name':'孙畅煊','age':20,'gender':'男'}, {'name': '陈奕洁', 'age': 20, 'gender': '女'}, {'name': '张宛靖', 'age': 20, 'gender': '女'} ] print(students[1]) print(students[1]['age']) print(students[2]['gender']) |
运行结果:
{'name': '孙畅煊', 'age': 20, 'gender': '男'}
20
女
字典中嵌套列表:
stu = {'name':'马瑞鹏','age':20,'gender':'男'}stu1 = {'name':"陈龑",'age':19,'gender':'男','hobby':["小米","华为","苹果"]}students = [{'name':'马瑞鹏','age':20,'gender':'男'},{'name':'孙畅煊','age':20,'gender':'男'},{'name': '陈奕洁', 'age': 20, 'gender': '女'},{'name': '张宛靖', 'age': 20, 'gender': '女'},stu1]print(stu1)print(students[4])print(students[4]['hobby'])
运行结果:
{'name': '陈龑', 'age': 19, 'gender': '男', 'hobby': ['小米', '华为', '苹果']}
{'name': '陈龑', 'age': 19, 'gender': '男', 'hobby': ['小米', '华为', '苹果']}
['小米', '华为', '苹果']
5、如何判断两个字典是否相等
可以通过==判断两个列表或者两个字典里面的内容是否是相同的,列表比较内容及顺序,字典只比较键值对的内容是否一致,不比较顺序
代码段1:
l1 = ["Zhangsan","MaRuipeng"]l2 = ["MaRuipeng","Zhangsan"]l3 = ["MaRuipeng","Zhangsan"]print(l1 == l2)print(l2==l3)
运行结果:
False
True
代码段2:
d1 ={'stu1':"马瑞鹏","stu2":"张宛靖","stu3":"陈奕洁"}d2 ={"stu2":"张宛靖",'stu1':"马瑞鹏","stu3":"陈奕洁"}print(d1==d2)
运行结果:
True
注意:字典里面的键可以是数字
代码段3:
d1 ={1:"马瑞鹏",2:"张宛靖",3:"陈奕洁"}print(d1)
运行结果:
{1: '马瑞鹏', 2: '张宛靖', 3: '陈奕洁'}
注意:不能访问不存在的键
代码段4:
d1 ={1:"马瑞鹏",2:"张宛靖",3:"陈奕洁"}print(d1[1])
运行结果:马瑞鹏
练习:创建一个字典存储朋友的生日,方便通过朋友的名字 访问到朋友的生日
代码段5:
# 创建一个字典存储朋友的生日,方便通过朋友的名字 访问到朋友的生日birthdaies = {'mrp':'9月29日',"zhj":"5月13日"}print(birthdaies['mrp'])print(birthdaies['zhj'])
运行结果:
9月29日
5月13日
6、使用keys和values取得键集合和值集合
字典的一些方法:
1、keys() 返回所有键的集合(不是列表类型,不用管什么类型,可以通过for遍历)
2、values()返回所有值的集合
3、items() 返回所有键值对的集合(这里的键值对使用元组数据类型)
代码段1:
stu = {'name':'马瑞鹏','age':20,'gender':'男'}for k in stu.keys():print(k)for v in stu.values():print(v)keys = list(stu.keys())values = list(stu.values())print(keys)print(values)
运行结果:
name
age
gender
马瑞鹏
20
男
['name', 'age', 'gender']
['马瑞鹏', 20, '男']
可以通过list()方法把上面的集合转成真正的列表 (在range的时候用过)
list(d.keys())
list(d.values())
list(d.items())
代码段4:
stu = {'name':'马瑞鹏','age':20,'gender':'男'}print(stu.items())
运行结果:
dict_items([('name', '马瑞鹏'), ('age', 20), ('gender', '男')])
7、遍历字典的两种方法
1、for i in d.items():
i[0] i[1]
代码段1:
stu = {'name':'马瑞鹏','age':20,'gender':'男'}for i in stu.items():print(i)print(i[0],i[1])
运行结果:
('name', '马瑞鹏')
name 马瑞鹏
('age', 20)
age 20
('gender', '男')
gender 男
代码段2:
stu = {'name':'马瑞鹏','age':20,'gender':'男'}items = list(stu.items())print(items)
运行结果:
[('name', '马瑞鹏'), ('age', 20), ('gender', '男')]
2、for k,v in d.items() :
k,v
代码段2:
stu = {'name':'马瑞鹏','age':20,'gender':'男'}for k,v in stu.items():print(k)print(v)
运行结果:
name
马瑞鹏
age
20
gender
男
8、判断键是否存在和设置键的默认值
检查字典中是否存在值或者键使用in或者not in,当不指定keys和values的时候默认是检查键集合。
代码段1:
stu = {'name':'马瑞鹏','age':20,'gender':'男'}res = 'gender' not in stu.keys()print(res)res2 = '马瑞鹏' in stu.values()print(res2)# 默认判断键res3 = 'gender' in stuprint(res3)res4 = '马瑞鹏' in stuprint(res4)
运行结果:
False
True
True
False
使用get取得值,防止报错。
d.get(key,defaultValue)
设置默认值:d.setdefault(key,value)
如果key不存在,就添加key-value键值对,如果存在,不做任何事情
代码段2:
stu = {'name':'马瑞鹏','age':20,'gender':'男'}stu.setdefault("name","马瑞杰")stu.setdefault("hobby",'英语、游泳')print(stu['name']+"的爱好是:"+stu['hobby'])
练习题
- 创建一个包含多个键值对的字典
- 遍历打印出所有的键key
- 遍历打印出所有的值value
- 遍历打印所有的键值对
- 删除某一个键值对
代码:
# 1、创建一个包含多个键值对的字典course = {'数据结构':"史蕊",'计算机网络':"刘景森",'计算机组成原理':"袁泉"}# 2、遍历打印出所有的键keyfor k in course.keys():print(k)# 3、遍历打印出所有的值valuefor v in course.values():print(v)# 4、遍历打印所有的键值对for k,v in course.items():print("教"+k+"的老师是"+v)# 5、删除某一个键值对del course['计算机组成原理']print(course)
运行结果:
数据结构
计算机网络
计算机组成原理
史蕊
刘景森
袁泉
教数据结构的老师是史蕊
教计算机网络的老师是刘景森
教计算机组成原理的老师是袁泉
{'数据结构': '史蕊', '计算机网络': '刘景森'}
Python第六章 字典相关推荐
- 《Python从入门到实践》读书笔记——第六章 字典
<Python从入门到实践>读书笔记--第六章 字典 1. 一个简单的字典 alien_0 = {'color': 'green', 'points': 5}print(alien_0[' ...
- Python编程:从入门到实践(第二版)随书敲代码 第六章 字典
alien.py # 第六章 字典 # 6.1 一个简单的字典 alien_0 = {'color': 'green', 'points': '5'} print(alien_0['color']) ...
- python归一化 增大差异_简学Python第六章__class面向对象编程与异常处理
Python第六章__class面向对象编程与异常处理 欢迎加入Linux_Python学习群 群号:478616847 目录: 面向对象的程序设计 类和对象 封装 继承与派生 多态与多态性 特性pr ...
- 宇文成 Python 第六章 列表和元组
Python 第六章 列表和元组 #!/usr/bin/python -- coding:utf-8 -- @Author : Yu Wencheng @Time : 2020/9/5 17:04 & ...
- Python第四章-字典
第四章 字典-当索引不好用时 4.0 字典可以理解成是C++里的map,可以映射任何类型.字典这种结构类型称为映射(mapping). 字典是Python中唯一内建的映射类型,字典中的值并 ...
- python 第五章 字典
python 第五章 # # !/usr/bin/python # # -*- coding: utf-8 -*- # # @File : 总结.py # # @time : 2019-07-1010 ...
- python第六章函数课后答案_浙大PTA-Python题库 函数题(6-1~6-6)题解
其他各章题解链接如下 浙大PTA-Python题库 编程题第一章(1-1~1-3)题解 https://blog.csdn.net/zimuzi2019/article/details/1070206 ...
- 《Python编程 从入门到实践》 一、基础知识 第六章 字典
6.1一个简单的字典 来看一个游戏,其中包含一些外星人,这些外星人的颜色和点数各不相同,下面是一个简单的字典,存储了有关特定外星人的信息: alien_0={'color':'green','poin ...
- python 第六章 函数
1.函数的定义 def 名称(形参): 函数体 2.函数的调用 名称(实参) 单独文件:模块 调用方式--模块.名称 3.函数的参数类型 1.位置参数: def add(a,b):add(2,3) # ...
最新文章
- 程序员的学习方法的一些总结
- 【CentOS 7笔记24】,实验中发生的磁盘小故障#
- 在JavaScript文件中读取properties文件的方法
- vue.js实现价格格式化
- js(Dom+Bom)第八天—Swiper(插件)
- CMU Database Systems - Sorting,Aggregation,Join
- 5分钟搞定Loki告警多渠道接入
- python执行过程打印,如何在pytest运行过程中看到正常的打印输出?
- carry函数在C语言中用法,CArry的使用完整版.doc
- 安装Ubuntu系统
- SQLyog的下载与安装
- 线性分类器三种最优准则
- 【手持式微波频谱分析仪】真正便携且功能强大的仪器 - 欧洲制造
- 机器学习——图像分类
- 虚假评价检测(Spam Detection)最新工作综述
- 计算机超级皇冠关键词是什么,搜狗推广服务
- 计算机音乐谱子十年,十年曲谱钢琴曲_十年 钢琴谱
- 关于bootstrap--表格(table的各种样式)
- 炔烃+叠氮“点击化学”(Click chemistry)试剂,你值得拥有
- Hack The Box - Meta 利用Exiftool远程代码执行漏洞获取webshell,ImageMagrick命令执行漏洞横向提权,更改环境配置SUDO纵向提权
热门文章
- 程序员的爱情数字表白
- 【PI应用】用Java查询雅虎天气并解析Json数据
- int与float深入理解
- PAT(甲级)2018年秋季考试 7-1 Werewolf - Simple Version (20 分)
- 极速office(Word)怎么快速插入空白页
- python的输出命令是什么意思_python输出语句print的用法是什么?_后端开发
- 2021极术通讯-自动驾驶穿越“生死线”
- Mac设置安装任何来源的第三方软件
- android使用RTMP实现录屏直播推送音视频(已在享学公众号发表)
- pe修改2008服务器的快捷键,PE, *PEDIT(多段线编辑)怎样修改快捷键