2.2 Python字典
2、字典
创建字典
key: value,key 不允许重复。
scores = {'语文': 80, '数学': 81, '英语': 82} print(scores)
{‘语文’: 80, ‘数学’: 81, ‘英语’: 82}
scores = dict([('语文', 80), ('数学', 81), ('英语', 82)]) print(scores)
{‘语文’: 80, ‘数学’: 81, ‘英语’: 82}
# 关键字参数创建 dict,不允许使用表达式 scores = dict(语文=80, 数学=81, 英语=82) print(scores)
{‘语文’: 80, ‘数学’: 81, ‘英语’: 82}
操作字典 key_value 对
查
# 通过 key 访问 value print(scores['语文'])
80
字典可变,可增删改
# 对不存在 key 赋值,就是添加 key-value 对 scores['政治'] = 83 print(scores)
{‘语文’: 80, ‘数学’: 81, ‘英语’: 82, ‘政治’: 83}
# 对已有 key 赋值,就是替换 key-value 对 scores['政治'] = 93 print(scores)
{‘语文’: 80, ‘数学’: 81, ‘英语’: 82, ‘政治’: 93}
# 删除 key-value 对 del scores['政治'] print(scores)
{‘语文’: 80, ‘数学’: 81, ‘英语’: 82}
in、not in 判断是否在字典中
print('物理' in scores) # 只要判断 key print('数学' in scores)
False
True
理解 dict 与 list 关系
- 字典相当于索引是任意不可变类型的列表;而列表则相当于 key 只能是整数的字典。
- 列表索引从 0 开始,连续增大;而字典的索引即使是整数,也不需要从 0 开始,也不需要连续。
- 列表不允许对不存在的索引赋值;而字典则允许对不存在的 key 赋值(这样就会为字典增加一组 key-value 对)
字典常用方法
clear() 清空字典所有的 key-value 对
get() 根据 key 获取value
update() 使用一个字典所包含的 key-value 对来更新已有的字典
scores = {'语文': 80, '数学': 81, '英语': 82}# 对已有的 key,更新 value;对不存在的 key,则添加 key-value 对 scores.update({'语文': 90, '政治': 91}) print(scores)
{‘语文’: 90, ‘数学’: 81, ‘英语’: 82, ‘政治’: 91}
# 使用序列作为参数,序列的每个元素都只能有 2 个元素:第一个是 key,第二个是 value scores.update({'语文': 80, '物理': 92}) print(scores)
{‘语文’: 80, ‘数学’: 81, ‘英语’: 82, ‘政治’: 91, ‘物理’: 92}
# 使用关键字作为参数,不支持用表达式 scores.update(语文=70, 生物=93) print(scores)
{‘语文’: 70, ‘数学’: 81, ‘英语’: 82, ‘政治’: 91, ‘物理’: 92, ‘生物’: 93}
items()、keys()、values() 分别获取字典中所有 key-value 对、所有 key、所有 value
scores = {'语文': 80, '数学': 81, '英语': 82}for key in scores.keys(): # 遍历 keyprint(key)for value in scores.values(): # 遍历 valueprint(value)for key,value in scores.items(): # 遍历 key,value(序列解包)print(key,value)for item in scores.items(): # 遍历 item(元组)print(item)
语文
数学
英语
80
81
82
语文 80
数学 81
英语 82
(‘语文’, 80)
(‘数学’, 81)
(‘英语’, 82)pop() 获取并删除指定 key 对应的 value
popitem() 随机弹出字典中一个 key-value 对
setdefault() 根据 key 来获取对应 value 值,并为不存在的 key 设置默认值
scores = {'语文': 80, '数学': 81, '英语': 82}print(scores.setdefault('语文', 70)) print(scores.setdefault('政治', 70)) print(scores)
80
70
{‘语文’: 80, ‘数学’: 81, ‘英语’: 82, ‘政治’: 70}fromkeys() 使用给定的多个 key 创建字典,这些 key 对应的 value 默认为 None;也可额外传入一个参数作为默认的 value
scores_1 = dict.fromkeys(['语文', '数学', '英语']) print(scores_1)scores_2 = dict.fromkeys(['语文', '数学', '英语'],70) print(scores_2)
{‘语文’: None, ‘数学’: None, ‘英语’: None}
{‘语文’: 70, ‘数学’: 70, ‘英语’: 70}
使用字典格式化字符串
s1 = '图书名为:%s,价格为:%5.2f' # 用元组来格式化字符串,根据位置来填充“占位符” print(s1 % ('疯狂Python讲义', 128))s2 = '图书名为:%(name)s,价格为:%(price)5.2f' # 用 dict 来格式化字符串,根据 key 来填充“占位符” print(s2 % {'price': 128, 'name': '疯狂Python讲义'})
图书名为:疯狂Python讲义,价格为:128.00
图书名为:疯狂Python讲义,价格为:128.00
2.2 Python字典相关推荐
- Python 字典(Dictionary) get()方法
Python 字典(Dictionary) get()方法 描述 Python 字典(Dictionary) get() 函数返回指定键的值,如果值不在字典中返回默认值. 语法 get()方法语法: ...
- python 字典 的pop 方法
python 字典pop 方法的作用: 字典 pop() 方法删除字典给定键 key 及对应的值,返回值为被删除的值 字典pop 的语法: pop(key[,default]) demo 练习字典po ...
- python字典一键多值_python字典中如何一键多值的写入?
python字典中如何一键多值的写入? python字典中一键多值写入的方法: 1.循环写入字典key.value.删除指定的键值对: 原文本'jp_url.txt'每行元素以逗号分隔:host_ke ...
- python字典{:4}_Python字典101:详细的视觉介绍
python字典{:>4} 欢迎 (Welcome) In this article, you will learn how to work with Python dictionaries, ...
- Python 字典(Dictionary)
Python 字典(Dictionary) 字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在 ...
- python字典操作添加_Python字典常见操作实例小结【定义、添加、删除、遍历】
本文实例总结了python字典常见操作.分享给大家供大家参考,具体如下: 简单的字典: 字典就是键值对key-value组合. #字典 键值对组合 alien_0 ={'color':'green', ...
- python 字典代码_Python 字典(Dictionary)
Python 字典(Dictionary) 字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包 ...
- python字典(dict)+常用方法操作+列表、元组、集合、字典的互相转换
python字典(dict)+常用方法操作+列表.元组.集合.字典的互相转换 字典也是 Python 提供的一种常用的数据结构,它用于存放具有映射关系的数据. 为了保存具有映射关系的数据,Python ...
- python字典之defaultdict详解
python字典之defaultdict详解 defaultdict为你的字典设定一个默认值或者默认值的数据类型: defaultdict接受一个工厂函数作为参数,如下来构造: dict =defau ...
- python字典练习题
python字典练习题 写代码:有如下字典按照要求实现每一个功能dict = {"k1":"v1","k2":"v2", ...
最新文章
- seo笔记——搜索显示
- jmail反馈是否发送成功_如何在钉钉上自动发送定制消息或通知给同事?(10行代码搞定)...
- php面向对象分页,PHP基于面向对象封装的分页类示例
- 京东智能巡检机器人问世 京东金融进军企业服务新蓝海
- 常微分方程matlab求解
- golang安装beego报错:go: cannot use path@version syntax in GOPATH mode
- 无类别地址CIDR概述
- IBM Storwize V7000详解:IIS西安大会现场观察
- 1 linux下tcp并发服务器的几种设计的模式套路,Linux下几种并发服务器的实现模式(详解)...
- MySQL更新死锁问题
- 小米笔记本pro lol测试软件,小米笔记本Pro游戏实测,MX150显卡竟有猫腻
- [渝粤教育] 北京理工大学 工程热力学 参考 资料
- 证件照处理:一寸照片换底色
- 钉钉回放被管理员禁止下载?别急我来帮你
- 微信支付之微信公众号网页支付(各种总结)
- OpenCV颜色空间——Luv颜色空间
- android 瀑布流 github,GitHub - youxilua/waterfall4android: android瀑布流
- 单身的我写了一个七夕表白程序
- 转载:渗透测试方法论(阅读)
- 高中计算机省赛试题,全国青少年信息学奥林匹克竞赛(高中组)初赛试题及答案...
热门文章
- Python2.7 Tkinter学习总结(一)
- 爬取18年二季度天天基金网基金持仓信息-python
- Power BI盈亏平衡分析-优化
- 桌面运维:重置电脑\系统重装
- mac 安装Homebrew提示brew command not found的解决方法
- Excel可视化:交叉柱形图做法
- 信息学奥赛一本通1104年龄与疾病
- 【论文学习】ASVspoof 2015 the First Automatic Speaker Verification Spoofing and Countermeasures Challenge
- Windows如何压缩tar.gz格式
- 2022-2028全球自动电缆压接机行业调研及趋势分析报告