首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >oeasy Python 130 字典_构造_dictionary_Constructor

oeasy Python 130 字典_构造_dictionary_Constructor

原创
作者头像
oeasy
发布2026-07-21 16:30:01
发布2026-07-21 16:30:01
190
举报

字典_构造_dictionary_Constructor

回忆

  • 集合操作

英文单词

中文释义

add

添加

clear

清空

remove

指定删除

discard

丢弃(删除)

pop

弹出

  • 集合运算

运算类型

基础运算符

增强赋值运算符

对应方法名

交集

&

&=

intersection

并集

\

\

=

union

差集

-

-=

difference

对称差集

^

^=

symmetric_difference

  • 集合之间可以判断

运算类型

英文描述

运算符

是否有交集

isdisjoint

是否是子集

issubset

<=

是否是超集

issuperset

>=

图片描述
图片描述
  • 遇到这么个问题
    • {}并不是空集
    • 而是一个dict

回忆

符号

例子

类型名

英文名

是否可变

是否有序

可否重复

小括号

(0, 1)

元组

tuple

不可变

有顺序

可重复

中括号

[0, 1]

列表

list

可变

有顺序

可重复

大括号

{0, 1}

集合

set

可变

无顺序

不可重复

图片描述
图片描述
  • 一对 空的 大括号
    • 并不是 空集
    • 而是一个 dict
  • dict 是 什么 类型 ?

音高与时值

  • dict 代表着
    • dictionary
    • 字典
图片描述
图片描述
  • 音高字典
    • 根据123
    • 找到 具体的音高
代码语言:javascript
复制
# 音符对应字典,按简谱 1 - 7 对应 F 调下的音符(1=F 时的对应)
NOTE_MAP = {
    '1': 65, '2': 67, '3': 69, '4': 70,
    '5': 72, '6': 74, '7': 76
}
  • 力度字典
    • 根据 强弱次强弱 找到
    • 具体的力度
代码语言:javascript
复制
# 定义强弱规律(四四拍:强=90,弱=50,次强=70,最弱=40)
BEAT_VELOCITY = {
    1: 90,   # 第一拍(强)
    2: 50,   # 第二拍(弱)
    3: 70,   # 第三拍(次强)
    4: 50    # 第四拍(弱)
}

帮助手册

  • 对着dict喊救命
代码语言:javascript
复制
help(dict)
  • 缺省构造函数 生成一个空字典
图片描述
图片描述
  • 构造方法
    • 构造的是 映射关系(mapping)
    • 需要 key和value的pair
代码语言:javascript
复制
dict(one=1, two=2)
  • 这里 给了 2个 key-value 的 pair
    • one=1
    • two=2
    • 等号 前面的 是 key
    • 等号 后面的 是 value

试试

  • 把这个字典 赋给d
代码语言:javascript
复制
d = dict(one=1, two=2)
  • 通过 key 查到
    • key所 对应的value
    • 通过 "one" 可以查到 1
    • 通过 "two" 可以查到 2
代码语言:javascript
复制
d["one"]
d["two"]
  • one 是 要查的key
图片描述
图片描述
  • 查one
    • 查得的value 是 1
    • one 和 1 之间
    • 有 mapping(映射)关系

通讯录

  • 我记得住 人名
    • 但我 记不住 电话
    • 查人名 得到 电话
图片描述
图片描述
  • 建个 通信录

通信录

  • dict方法 给字典变量赋初值
代码语言:javascript
复制
contacts = dict(oeasy="123", o2z="456")
contacts
  • 使用字典构造函数 完成赋值
图片描述
图片描述
  • 得到字典后
    • 可以查
代码语言:javascript
复制
contacts["oeasy"]
contacts["o2z"]
  • 这是用 构造函数 造的字典
    • 可以 不用构造函数
    • 直接生成 字典吗?

直接赋初值

  • 就像之前的
    • 音高字典 一样
代码语言:javascript
复制
# 音符对应字典,按简谱 1 - 7 对应 F 调下的音符(1=F 时的对应)
NOTE_MAP = {
    '1': 65, '2': 67, '3': 69, '4': 70,
    '5': 72, '6': 74, '7': 76
}
  • 直接 把字典 直接赋过去
代码语言:javascript
复制
contacts = {"oeasy":123, "o2z":456}
contacts
  • 效果一样
图片描述
图片描述
  • 元组、列表、字符串
    • 好像也可以 索引
    • 有什么区别呢?

回忆列表

  • 列表 用 数字 索引
代码语言:javascript
复制
lst = list("oeasy")
lst
lst[0]
lst[4]
  • 列表 是 有序的序列
    • 根据 序号数字 进行索引
    • 通过 序号数字 返回 列表项
图片描述
图片描述
  • 超出范围
    • 报IndexError
    • 索引错误
图片描述
图片描述
  • 那字典 怎么索引 的呢?

查询字典

  • 列表 用 数字序号 索引
    • 字典 用 key 索引
代码语言:javascript
复制
contacts = {"oeasy":123, "o2z":456}
contacts["oeasy"]
contacts["o2z"]
  • 根据 key
    • 查到key 对应的value
    • 运算符 还是
      • 索引运算符[]
图片描述
图片描述
  • 字典 会报 索引错误 吗?

索引不存在的值

  • o3z 不是 字典的key
代码语言:javascript
复制
contacts["o3z"]
  • 键(key) o3z
    • 索引 不到东西
图片描述
图片描述
  • 不存在 o3z 这个key
    • 没法索引
    • 报KeyError
      • 键错误
  • key 怎么理解?

key

  • key 就是钥匙
    • 很重要!!!
图片描述
图片描述
  • 这钥匙 干嘛 用的?

开锁

  • 钥匙开锁
    • 按一下 触发一个功能 就叫key
      1. 开门的 钥匙
      2. 钢琴的 琴键
      3. 电脑键盘的 按键
图片描述
图片描述
  • 钥匙是和锁 配对的
    • 有钥匙 才能开锁
    • 开了锁 就可以找到value
  • 联系人的信息
    • 除了 电话 之外
    • 可能 还包括 地址

通讯录

图片描述
图片描述
  • 人名 映射到 电话和地址元组
    • 人名:(地址,电话)
代码语言:javascript
复制
d = {"oeasy": (123, "bj"), "o2z": (456, "sh")}
  • 通过"oeasy"可以
    • 映射到 详细信息元组
      • 元组 第0个元素 是 电话
      • 元组 第1个元素 是 地址
图片描述
图片描述
  • 1个key
    • 能找到 2个value 吗?

尝试

代码语言:javascript
复制
d = {"y": "yes", "y":"yeah!"}
  • 一个 key 可以对应
    • 两个不同的 value 么?
    • 试试
图片描述
图片描述
  • key 只能有一个
    • 后面的 会更新(update) 前面的
图片描述
图片描述
  • 那我做个 动物的字典吧

字典

代码语言:javascript
复制
d = {
    "cat": "girl-like animal",
    "dog": "boy-like animal",
    "rat": "small animal",
    "elephant": "big animal"
}
  • 编字典
    • 给世界 下定义
    • 真好玩!!
图片描述
图片描述
  • 在古代
    • 典 不是 随便谁都能编的
  • 典 这个词怎么来的呢?

  • 典一般都是很有分量的
    • 经典
    • 典籍
    • 典范
    • 用典
    • 引经据典
图片描述
图片描述
  • 左右 两只手
    • 中间 拿着册
      • 册 是 古代的判例、案例
    • 盛典
    • 大典
    • 典狱长
    • 典当行
    • 都得 靠典

最早的中文字典

  • 公元100年
    • 许慎写出《说文解字》
图片描述
图片描述
  • 英文中 dictionary 怎么来的呢?

dictionary

  • 字典这个词来自于拉丁语
    • 意思是 单词和短语的 集合
图片描述
图片描述
  • 1220年
    • Johannes de Garlandia
      • 加兰的约翰
      • 他来自英国
      • 后在法国教拉丁文
    • 编写 第一本 拉丁语字典
  • 为什么 不编 英文字典 呢?

拉丁语

  • 英文 算是
    • 混合了 日耳曼语、诺尔斯语、拉丁语 的
    • 一种 口语方言
图片描述
图片描述
  • 拉丁文
    • 是 传统书写语言
    • 来自 神圣的教廷总部
    • 有 罗马帝国 战斗力的 背书

盎撒征服

  • 盎格鲁-撒克逊 编年史
    • 由 英太祖 阿尔弗雷德
    • 把 盎撒口语 落实到了 纸面
图片描述
图片描述
  • 大不列颠岛 从此
    • 成为了 盎格鲁人的岛(England)
    • 盎格鲁撒克逊 形成 民族认同
  • 此时 还没有 英文字典
    • 世界上 第一本英文词典 啥时候编的呢?

第一本英文词典

  • 1604年
    • 作者 Robert Cawdrey
      • 是 神职人员
      • 普及宗教文化
      • 因为 能识字的人 不多
    • 世界上 第一本 英文词典
      • the Table Alphabeticall
      • 单词表
图片描述
图片描述
  • 面向“女士、名媛淑女 以及其他技能不熟练人”
    • 创造了一个临时解决方案
    • 列出了 大约2,500个 “较难使用的词汇”
    • 词汇量 还不到 当时常用语的 5%
  • 神学 就是 当时最高 人文科技

首页

  • 前言部分 字体 为 罗马正体
图片描述
图片描述
  • 和 今天的英语 很像
    • 但是 也有些 不一样

第一个单词

  • 从A到Z
    • 按照字母表顺序 排列
    • 单词字体 是 罗马正体
      • 显着 正式
    • 单词含义 是 哥特字体
      • 向 古腾堡的不屈 致敬
图片描述
图片描述
  • 词义 模糊
    • 饮食(diet)一词
    • 被描述为 进食的方式
  • 没有 任何解释性的 例句
    • 更不用说 追溯词源 了
  • 《字母表》的词汇量 非常少
    • 总共37页
    • 字母W 没有任何单词

新单词总结

英文术语

中文翻译

dictionary

字典

key

value

item

mapping

映射

总结

  • 这次 接触了 字典
    • 字典是用来查的
      • 根据一个 key
      • 可以查到相应的 value
图片描述
图片描述
  • dictionary 这个词
    • 怎么来的呢??🤔
  • 下次再说 👋

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 字典_构造_dictionary_Constructor
    • 回忆
      • 回忆
      • 音高与时值
      • 帮助手册
      • 试试
      • 通讯录
      • 通信录
      • 直接赋初值
      • 回忆列表
      • 查询字典
      • 索引不存在的值
      • key
      • 开锁
      • 通讯录
      • 尝试
      • 字典
      • 最早的中文字典
      • dictionary
      • 拉丁语
      • 盎撒征服
      • 第一本英文词典
      • 首页
      • 第一个单词
      • 新单词总结
      • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档