Python集合推导式 图片看不了?点击切换HTTP 返回上层
Python中,使用集合推导式可以借助列表、元组、字典、集合以及 range 区间,快速生成符合需求的集合。
集合推导式的语法格式和字典推导式完全相同,如下所示:
有读者可能会问,集合推导式和字典推导式的格式完全相同,那么给定一个类似的推导式,如何判断是哪种推导式呢?最简单直接的方式,就是根据表达式进行判断,如果表达式以键值对(key:value)的形式,则证明此推导式是字典推导式;反之,则是集合推导式。
【例 1】
运行结果为:
【例 2】既然生成的是集合,那么其保存的元素必须是唯一的。
运行结果为:
【例 3】
运行结果为:
集合推导式的语法格式和字典推导式完全相同,如下所示:
{ 表达式 for 迭代变量 in 可迭代对象 [if 条件表达式] }
其中,用 [] 括起来的部分,可以使用,也可以省略。有读者可能会问,集合推导式和字典推导式的格式完全相同,那么给定一个类似的推导式,如何判断是哪种推导式呢?最简单直接的方式,就是根据表达式进行判断,如果表达式以键值对(key:value)的形式,则证明此推导式是字典推导式;反之,则是集合推导式。
【例 1】
1 2 | setnew = {i**2 for i in range(3)} print(setnew) |
{0, 1, 4}
【例 2】既然生成的是集合,那么其保存的元素必须是唯一的。
1 2 3 | tupledemo = (1,1,2,3,4,5,6,6) setnew = {x**2 for x in tupledemo if x%2==0} print(setnew) |
{16, 4, 36}
【例 3】
1 2 3 | dictdemo = { '1' :1, '2' :2, '3' :3} setnew = {x for x in dictdemo.keys()} print(setnew) |
{'2', '1', '3'}