网站首页 > 基础教程 正文
Dictionary 推导式的工作方式与列表推导式完全一样,但用于构建词典。语法只有细微的差异。以下示例解释需要了解的所有内容:
# dictionary.comprehensions.py
from string import ascii_lowercase
lettermap = {c: k for k, c in enumerate(ascii_lowercase, 1)}
如果打印 lettermap,将看到以下内容:
$ python dictionary.comprehensions.py
{'a': 1,
'b': 2,
...
'y': 25,
'z': 26}
在在前面的代码中,我们将枚举所有小写 ASCII 字母的序列(使用 enumerate 函数)。然后,将生成的字母/数字对作为键和值构建一个字典。请注意语法与熟悉的字典语法有何相似之处。
T这里也是另一种执行相同操作的方法:
lettermap = dict((c, k) for k, c in enumerate(ascii_lowercase, 1))
在在这种情况下,将 generator 表达式(我们将在本章后面详细讨论这些)提供给 dict 构造函数。
Dictionaries 不允许重复的键,如以下示例所示:
# dictionary.comprehensions.duplicates.py
word = 'Hello'
swaps = {c: c.swapcase() for c in word}
print(swaps) # prints: {'H': 'h', 'e': 'E', 'l': 'L', 'o': 'O'}
创建一个字典,其中字符串 'Hello' 的字母作为键和相同的字母,但大小写互换,作为值。请注意,只有一个 'l': 'L' 对。构造函数不会出错,它只是将重复项重新分配给最后一个值。让我们通过另一个示例来更清楚地说明这一点,该示例为每个键分配了它在字符串中的位置:
# dictionary.comprehensions.positions.py
word = 'Hello'
positions = {c: k for k, c in enumerate(word)}
print(positions) # prints: {'H': 0, 'e': 1, 'l': 3, 'o': 4}
Notice 与字母 'l' 关联的值: 3. 'l': 2 对不存在;它已被 'l': 3 覆盖。
猜你喜欢
- 2025-05-02 Python代码使用字典推导式(python的字典怎么用)
- 2025-05-02 失业程序员复习python笔记——字典和集合(2)
- 2025-05-02 Python中删除字典元素的方法(python 字典 删除)
- 2025-05-02 如何在Python中按值对字典进行排序?
- 2025-05-02 Python哈希表:了解哈希函数与字典
- 2025-05-02 失业程序员复习python笔记---字典和集合(1)
- 2025-05-02 Python 字典合并、求和大作战,轻松搞定各路数据
- 2025-05-02 Python 访问字典视图 #python爬虫
- 2025-05-02 python学习——025python遍历字典四种方法
- 2025-05-02 一文掌握Python 字典遍历的8种方法
- 最近发表
-
- 碎片时间学Python-01安装Python(python详细安装教程3.8)
- Python安装(python安装教程)
- Python pip安装与使用步骤(python3.6 pip安装)
- 第二篇:如何安装Python并运行你的第一个程序
- Python入门教程:安装(python安装教程2020)
- 常用的Python库安装方法(Python实用教程)
- Python下载与安装教程(很详细)(python下载安装教程3.9.1)
- python安装教程(小白入门)(python安装详细步骤)
- 详解pip的基本使用和离线安装Python第三方库
- (一)从零开始安装Python(然后安装python)
- 标签列表
-
- 菜鸟教程 (58)
- jsp (69)
- c++教程 (58)
- pythonlist (60)
- gitpush (78)
- gitreset (66)
- python字典 (67)
- pythonif (68)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)