show | version | enable_checker |
---|---|---|
step |
1.0 |
true |
- 上次理解了
- 通过zip缝合序列
- 然后再得到字典?🤔
- 通过zip缝合序列
- 因为 keys 绝对不会重复
- values 有可能重复
- 如果 没有重复的 values 的话
- key 和 value 可以对调
- 英汉字典 可以转化为 汉英字典
- 汉英字典 也可以转化为 英汉字典
- key 和 value 可以对调
- 字典
- 是如何通过key
- 来存取 value的呢?
- 是如何通过key
- 列表和元组是如何访问列表项的
- 可以使用下标访问列表项
- 下标是数字
- 字典中的key可以是数字吗?
- 尝试
- 看起来这个时候
- 字典就相当于一个列表?
- l 是列表类的对象
- l使用的是list中的方法
- d是一个字典类的对象
- d使用的是dict中的方法
- 有的时候我们记不住颜色编号
- 我们只能记住名字
- 比如我们记住 red、blue、green
- 但是记不住他的编号
- 比如我们建立一个 ansi 颜色字典
- 收录两种颜色
- 一个红色
- \33[31m
- 一个还原色
- \33[0m
- 一个红色
- 这个如何访问呢?
- 可以得到字典里
- 键的列表 keys()
- 值的列表 values()
- 字典项的列表 items()
- \x1b 其实就是\33的十六进制形式
- 这个东西怎么用呢?
- 通过 key 来找到 value
- 这是一个映射(map)关系
- 通过一个字符串型的 key 键
- 得到一个字符串型的 value 值
- 这样不就可以用我们熟悉的颜色名称
- 来描述不太熟悉的颜色数值号了么
- 靠的是什么?
- 就是 key-value 之间的映射
- mapping
- 我想给颜色字典加个绿色
- 怎么办?
- colors["green"] = "\33[32m"
- 如果字典中没有green 这个 key 的话
- 就给字典添加上这条键值对
- 增加green这个键,以及green这个键的值\33[32m
- 或者说 增加了 ("green","\33[32m") 这个字典项(item)
- 但是如果 green 这条字典项已经有了呢?
- 如果 green 这个颜色在字典的keys里已经有了
- 就对于green这个key相应的value进行修改
- 比如
- 把黑底绿字变成了绿底白字
- 如果我想删除这个字典项呢?
- 通过 del 就可以删除了
- 有点像删除 list 列表中的切片的感觉
- 可以用函数更新字典吗?
- 虽说先删除再添加也能更新
- 但是可以试试这个
- update
- 还可以更新多个键值对
- 对与字典项的增删改都是通过key找到相应的字典项
- 可以用value寻找字典项吗?
- 字典的查询主要靠的是key
- 如果给出一个value
- 想要查到key可以吗?
-
需要把所有的字典项 遍历一遍才能找到字典项
-
而且找到的字典项可能还不止一个
-
因为key是unique的
-
但是value不是
-
字典可以拷贝吗?
- =是直接赋字典地址
- 两个字典指向相同位置
- 拷贝是复制出一个字典
- 但是拷贝是浅拷贝
- 字典某个键的值是一个列表时
- 浅拷贝只能拷贝列表地址
- 两个新字典中"red"对应的值是同一个列表 list
- 换成深拷贝
- 深拷贝深拷贝
- 深层次的拷贝
- 不但新字典指向新的位置
- 新字典里面的项目也都指向新的位置
- 这就是字典的复制和修订
- 做这个事情的人叫做词典修订者lexicographer
- 英语成为世界第一语言有一位词典修订者做出了重大贡献
- 他也被叫做字典人(dictionary man)
- 这次学习了字典
- 字典可以读取和赋值
- 键的列表 keys()
- 值的列表 values()
- 字典项的列表 items()
- 字典项可以增删改
- 直接下标存取
- update函数
- del 删除字典项
- 字典项也可以是复杂的数据的结构
- 字典可以读取和赋值
- 最后提到了字典人
- 字典人究竟是怎么样的一个人呢?
- 这个人对于英语成为世界语言 做出了哪些贡献?🤔
- 字典人究竟是怎么样的一个人呢?
- 下次再说!👋🏻