返回介绍

3.2 字典推导

发布于 2024-02-05 21:59:48 字数 1206 浏览 0 评论 0 收藏 0

自 Python 2.7 以来,列表推导和生成器表达式的概念就移植到了字典上,从而有了字典推导(后面还会看到集合推导)。字典推导(dictcomp)可以从任何以键值对作为元素的可迭代对象中构建出字典。示例 3-1 就展示了利用字典推导可以把一个装满元组的列表变成两个不同的字典。

示例 3-1 字典推导的应用

>>> DIAL_CODES = [        ➊
...     (86, 'China'),
...     (91, 'India'),
...     (1, 'United States'),
...     (62, 'Indonesia'),
...     (55, 'Brazil'),
...     (92, 'Pakistan'),
...     (880, 'Bangladesh'),
...     (234, 'Nigeria'),
...     (7, 'Russia'),
...     (81, 'Japan'),
...   ]
>>> country_code = {country: code for code, country in DIAL_CODES}  ➋
>>> country_code
{'China': 86, 'India': 91, 'Bangladesh': 880, 'United States': 1,
'Pakistan': 92, 'Japan': 81, 'Russia': 7, 'Brazil': 55, 'Nigeria':
234, 'Indonesia': 62}
>>> {code: country.upper() for country, code in country_code.items()  ➌
...   if code < 66}
{1: 'UNITED STATES', 55: 'BRAZIL', 62: 'INDONESIA', 7: 'RUSSIA'}

❶ 一个承载成对数据的列表,它可以直接用在字典的构造方法中。

❷ 这里把配好对的数据左右换了下,国家名是键,区域码是值。

❸ 跟上面相反,用区域码作为键,国家名称转换为大写,并且过滤掉区域码大于或等于 66 的地区。

如果列表推导的概念已经为你所熟知,接受字典推导应该不难。如果你对列表推导还不熟,那么是时候来掌握它了,因为字典推导的表达形式会蔓延到其他数据类型中。

下面来看看映射类型提供的 API 的全景图。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文