首页 > Python笔记 阅读数:25

Python字典推导式和集合推导式

推导式共有三种类型,列表推导式、字典推导式和集合推导式。上节我们已经学过列表推导式,本节教程就对后两种推导式进行简单介绍。

Python字典推导式

字典推导式和列表推导式的使用方法比较类似,不过是把列表的标志——一对方括号[ ],变更为字典的标记——一对花括号{ }

举例说明,下面代码的功能是交换原有字典的键和值。
In [1]: mease = {'a': 10,  'b': 30,  'c': 50}
In [2]: kv_exchange = {v:k for k, v in mease.items()}
In [3]: print(kv_exchange)
{10: 'a', 30: 'b', 50: 'c'}
上述代码的 In [2] 处使用了字典的 items( ) 方法,它会返回一个支持遍历操作的列表,列表中是诸如(键 0, 值 0)、(键 1, 值 2)这样的小元组。

Python集合推导式

集合推导式和字典推导式非常类似,它们都有一个核心标志——一对花括号。但有所不同的是,字典内的元素需要以“键/值对”的形式出现,这里冒号为“键”和“值”的分隔符。而集合则不需要这个冒号,且集合内的元素是不能重复的。换句话说,集合推导式和字典推导式的差别,就是集合和字典之间的差别。

示例代码如下:
In [1]: squared = {x**2 for x in [1, 1, 2, -2, 3]}  #对每个元素实施平方操作
In [2]: print(squared)                              #集合可以达到去重的效果
{1, 4, 9}
在上述代码的 In [1] 处,由于 1 和 -1 的平方都是 1,2 和 -2 的平方都是 4,它们都是集合的元素,而集合的眼中容不下相同的元素,所以两个 1 和两个 4,都分别保留了一个。经过这个操作,集合推导式实际实现了元素去重的效果。

相关文章