Error in user YAML: (<unknown>): could not find expected ':' while scanning a simple key at line 3 column 1
---
- oeasy Python 0136
- 这是 oeasy 系统化 Python 教程,从基础一步步讲,扎实、完整、不跳步。愿意花时间学,就能真正学会。
本教程同步发布在:
个人网站: `https://oeasy.org`
蓝桥云课: `https://www.lanqiao.cn/courses/3584`
GitHub: `https://github.com/overmind1980/oeasy-python-tutorial`
Gitee: `https://gitee.com/overmind1980/oeasypython`
---- 上次了解了 文生图 提示词 程序
- 通过编号 获得相应的 提示词
- 再将 提示词 组合起来
- 字典 还能怎么玩呢?🤔
- 字典的本质是键值对的集合
d = dict(one=1, two=2)
d
list(d.keys())
list(d.values())
list(d.items())| 功能 | 方法 |
|---|---|
| 查看所有键 | d.keys() |
| 查看所有值 | d.values() |
| 查看所有键值对 | d.items() |
- 我可以通过字典生成
- 键 列表
- 值 列表
- 键值对 列表
- 可以 反过来 吗?
- 根据 keys 和 values
- 生成dict
- 两个序列
- 明确对应关系
keys = ["three", "four"]
values = [3, 4]
z = zip(keys, values)
z
d = dict(z)
d
- 把 键列表、值列表 缝合
- 在python的官网
- 也提到过dict的构造方式
- 这次去 https://docs.python.org
- 搜索dict
- 6种 构造方法
- 都是等价的
- 第3行 提到的 就是
zip- 如何理解
zip呢?
- 如何理解
help(zip)
- zip就是缝合
- 新列表里的 元素
- 是 两个列表 对应位置元素的 元组
- zip 可以缝合多个列表吗?
- zip 可以缝合
- 序列类
students = ["oeasy", "o2z", "o3z"]
math = [95, 96, 97]
chinese = [91, 92, 93]
score = list(zip(students, math, chinese))
score
- zip 把 若干个元组的 元素
- 按位置组合 成 新的元组
- 直到其中 某个元组 遍历完成
- zip 的结果可以理解为元组的列表
shuxue = sorted(score, key=lambda x: x[1], reverse=True)
shuxue
- 可以 直接拿 二维列表
- 构造 字典(dict) 吗?
- 二维列表
l_animals = [
["cat", "猫"],
["dog", "狗"],
["rat", "鼠"]
]
dongwu = dict(l_animals)
dongwu
- 可以 把 列表的列表
- 转化为字典
- 那 元组 的 元组 呢?
t_animals = (
("cat", "猫"),
("dog", "狗"),
("rat", "鼠")
)
dongwu = dict(l_animals)
dongwu
- 可以把元组的元组转化为字典
- 那么 元组的列表 或者 列表的元组呢?
l_animals = [
("cat", "猫"),
("dog", "狗"),
("rat", "鼠")
]
dongwu = dict(l_animals)
dongwu
- 元组的列表
- 列表的元组
t_animals = (
["cat", "猫"],
["dog", "狗"],
["rat", "鼠"]
)
dongwu = dict(l_animals)
dongwu
- 都没有问题
-
只要满足
- 内层序列元素 是
- 一对一 的 键值对 映射关系
- 就可以 转化为字典
-
序列类 的 列表和元组
- 可以转化为字典
-
字典 可以 转化回来 么?
d_animals = {'cat': '猫', 'dog': '狗', 'rat': '鼠'}
list(d_animals)
list(d_animals.keys())
- 把 字典转化成 列表的 时候
- 默认转化的是 dict.keys()
- 那 values 呢...
d_animals.values()
list(d_animals.values())
- 先用values把值得到
- 再用list、tuple、set转化就可以
- 想把dict 直接转为 二维列表
- 把 字典 的 key和value 搞出来
- 缝合到一起
- 转化成列表
- 转化回字典
l_key = list(d_animals)
l_value = list(d_animals.values())
z = zip(l_key, l_value)
lst = list(z)
lst
d = dict(lst)
d
- 绕了一圈又回去了
- 可以直接用items吗?
d_animals = {'cat': '猫', 'dog': '狗', 'rat': '鼠'}
items = d_animals.items()
lst = list(items)
lst
d = dict(lst)
d
- items 就是
- 缝合好的keys 和 values
- 可以把key、value 对调位置 吗?
-
关键看你怎么缝
-
如果值 也是唯一的
- 键值(key-value) 可以对调
- 依然是一对一的
- key-value pair
l_han = ["猫", "狗", "鼠"]
l_eng = ["cat", "dog", "rat"]
d_h2e = dict(zip(l_han, l_eng))
d_h2e
d_e2h = dict(zip(l_eng, l_han))
d_e2h
- 英译汉
- 倒过来
- 就是汉译英
- 倒过来
- 哪个字典更重要呢?
- 需要 英汉字典 的时候 就用 英译汉
- 需要 汉英字典 的时候 就用 汉译英
- 最早的 英译汉 和 最早的 汉译英 词典
- 是
谁做的呢?
- 是
- 这两本字典
- 作者是同一个人
- 马礼逊
- 作者是同一个人
- 1782年
- 马礼逊 生于苏格兰
- 曾 在伦敦
- 跟一位广东人 学汉语
- 1807年9月
- 马礼逊 初来广州
- 当时 中国禁教
- 为 偷偷传教
- 马礼逊 希望 融入百姓生活
- 学习 中国话
- 1808年6月
- 返回澳门
- 马礼逊 已经熟练掌握了
- 粤语
- 官话
- 1808年开始
- 马礼逊以《康熙字典》为据
- 开始编写成了三部分六卷本的《华英字典》
- 《华英字典》
- 有例句及解释
- 其中收录大量成语、俗语
- 全书 共6册,共4,595页,分三部分:
- 第一部分:共3册
- 以部首排列的汉英字典
- 收录汉字字头达四万馀
- 每汉字下附多音节词和成语
- 首创自左至右横排
- 方便中英对照
- 是为中国第一部横排字典
- 第二部分:共2册
- 是以字母音序排列的汉英同音字典
- 是为中国最早的同类型同音字典
- 第三部分:只1册
- 是以英文查中文的英汉字典
- 第一部分:共3册
- 华英字典
- 是中国境内 最早用西方 铅合金活字排印的 书籍
- 成为 经典教科书
- 被 多个出版社 再版
- 字典 里面引用了
- 三字经
- 论语
- 红楼梦
- 1818年
- 在马六甲创办英华书院
- 活字版印刷所
- 翻译出版《新约全书》、《新旧约全书》
- 1823年12月
- 梁发 被马礼逊 立为
- 第一个 基督新教的 中国籍牧师
- 他 协助马礼逊做印刷工作
- 梁发 被马礼逊 立为
-
1832年
- 梁发 用中文 写了一本《劝世良言》
- 宣扬上帝是独一真神
- 反对儒释道偶像崇拜
- 讲原罪、耶稣救赎、复活、末日审判
- 乡试时 派发给 赴考生员
- 梁发 用中文 写了一本《劝世良言》
-
有个 三次府试失利的 落第秀才
- 通过脑补
- 解决了 心理问题
- 成为了 耶稣的弟弟
- 我们先去总结一下
- 这次理解 了
- 通过zip缝合序列
- 然后 转化为 字典 🤔
- keys 绝对 不许重复
- values 有可能重复
- 如果 没有重复的 values 的话
- key 和 value 可以对调
- 英汉字典 可以转化为 汉英字典
- 汉英字典 也可以转化为 英汉字典
- key 和 value 可以对调
- 英语 成为世界第一语言
- 一位词典修订者 做出了 重大贡献
- 他也被叫做字典人(dictionary man)
- 字典人 究竟是 怎么样的人 呢?
- 他 对英语 成为世界语言
- 做出了
哪些贡献?🤔
- 下次再说 👋
- 本文来自 oeasy Python 系统教程。
- 想完整、扎实学 Python,
- 搜索 oeasy 即可。





















