Python 字典和集合(字典推导)

本章内容的大纲如下:

常见的字典方法

如何处理查找不到的键

标准库中 dict 类型的变种set 和 frozenset 类型

散列表的工作原理

散列表带来的潜在影响(什么样的数据类型可作为键、不可预知的

顺序,等等)

字典推导

自 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 的全景图。

相关推荐
leisoo80972 小时前
100GBA股股票数据怎么存ClickHouseRedisMySQLJSON完整对比
大数据·linux·服务器·开发语言·python
WangYan20222 小时前
基于XGBoost与AI的生态—地学多源数据建模:植被与土地利用识别、土壤碳氮空间预测、生物多样性驱动机制、土壤微生物功能预测、生态退化与风险识别
python·机器学习·xgboost
不会代码的小猴3 小时前
21. 泛型编程上
开发语言·c++·笔记·算法
一只旭宝4 小时前
细讲C加加【9】C++ std::function与std::bind详解|仿函数、绑定器、类成员绑定、占位符、成员偏移指针
开发语言·c++·算法
金銀銅鐵5 小时前
[Python] 借助 turtle 逐字展示唐诗《金缕衣》
python
coder!mq6 小时前
说几个常见的语法糖?
java·开发语言·算法
gugucoding6 小时前
38. 【Java】Stream API(下):高级操作与性能
java·开发语言
Lhan.zzZ6 小时前
在 Visual Studio 2022 中打造可扩展的动态链接库模块:从零搭建到原理解析
开发语言·c++·visual studio
心平气和量大福大6 小时前
android-实例-蒲公英-更新与安装-5-签名与生成APK
android·java·开发语言
码哥DFS7 小时前
构造函数、实例对象、对象原型 ----三者关系
开发语言·javascript·原型模式