1.  
  2. 主页
  3.  / 
  4. Python基础到高级
  5.  / 
  6. 解析式与迭代器

解析式与迭代器

解析式的定义

解析式是将一个可迭代对象转换成另一个可迭代的工具。在转换过程中,可以指定元素必须符合一定的条件,才能添加至新的可迭代对象中,这样每个元素都可以按需要进行转换。

解析式的用法

列表解析

列表解析返回的是列表

1). for循环常规的写法

求一个列表中所有元素的平方

使用解析式的方式,将上面的例子写下

2). 带有判断的解析式

获取列表中所有的偶数

常规的写法

使用解析式的写法

3). 带有多个判断的解析式

获取列表中所有偶数,并且大于0

获取列表中所有偶数,并且大于0,小于5

4). 使用逻辑运算的解析式

获取列表中所有偶数,并且大于0,小于5

带多个if判断的语句,都是可以转化为调教的逻辑运算,所以一般来说,不会带多个if语句

5). 多个for的解析式

常规写法

解析式写法

在解析式中,是可以有多个for的,就是逐一按照上面的格式增加就好了,相当于逐层嵌套for循环

6). for 和 if语句结合的解析式

常规写法

解析式写法

7). 偶数求平方,奇数求立方

常规写法

解析式的写法

列表解析式的优势

  • 代码简洁,可读性强
  • 效率比普通迭代稍高

列表解析式,对于性能的提升是微乎其微的,可以说,列表解析式就是为了代码的简洁,因此,我们在使用列表解析式的时候,一些复杂的循环或者判断操作,尽量不要使用列表解析式,因为那边不仅不会感觉出代码的简洁易懂,反而时间长了会自己都看不懂代码输出的结果是啥了。

生成器解析式

生成解析式返回的是一个生成器

列表解析式的中括号变成小括号,就是生成器解析式

生成器解析式的好处:

  • 当数据量大的时候,不会占用大量的内存
  • 在取值的时候,才会计算

明确需要使用下标访问元素的时候,使用列表解析,当只需要对结果迭代的时候,优先使用生成器解析。

生成器解析式和列表解析式的使用格式是完全一样的,因此上面列表解析式的列举的所有例子,对于生成器解析同样适用

集合解析式

集合解析式返回的是一个集合

定义解析的时候,使用大括号定义,那么就是一个集合解析式了

集合解析式和列表解析式的使用格式是完全一样的,因此上面列表解析式的列举的所有例子,对于集合解析同样适用

字典解析式

字典解析式返回的是一个字典

字典解析式的定义,也是使用大括号的,只不过是使用冒号来使用key->value的数据类型的

也是和列表解析式的表现形式一样的

这篇文章对您有用吗?

我们要如何帮助您?

发表评论

邮箱地址不会被公开。 必填项已用*标注