什么是推导式?
推导式是从一个或者多个迭代器快速简洁的创建数据结构的一种方法。而迭代器我们暂且可以认为是我们像列表、字典和集合等容器,容器就是一种迭代器,字符串也是,放在in后面。
推导式将循环和条件判断结合,从而避免语法冗长的代码。可以用来生成列表、字典和集合。
列表推导式:
[<表达式> for <变量> in <可迭代对象> if <逻辑条件>]
字典推导式:
{<键值表达式>:<元素表达式> for <变量> in <可迭代对象> if <逻辑条件>}
集合推导式:
{<元素表达式> for <变量> in <可迭代对象> if <逻辑条件>}
如下例子:

上面第二个例子在python3输出,发现字典输出是有序的,第三个例子的输出可以看出,集合当中的元素本身是没有顺序的,从第四个例子输出可以看出,集合是会自动去重的。而第五个例子的列表是没有去重的。第六个例子isinstance函数判断只取字符串。

生成器推导式:
(<元素表达式> for <变量> in <可迭代对象> if <逻辑条件>)
返回一个生成器对象,可是可迭代对象。但生成器并不立即产生全部元素,仅在要用到元素的时候才生成,可以极大节省内存。

网友评论