一、解析式
1、列表解析:代码简介且效率稍高,可以有多个for语句,相当于逐层嵌套
[exper for x in interator]
[exper for x in interator if cond if cond ....]
2、if表达式
x if cond else y
3、生成器解析:列表解析的中括号变为小括号就是生成器解析,返回是生成器。
不会占用内存,当用next调用时计算表达式。
当明确需要下标访问,用列表解析,只需要对结果迭代时,优先使用生成器解析。
4、集合解析
用大括号
5、字典解析
二、迭代器与可迭代对象
有_iter_的对象叫可迭代对象,迭代器是可迭代对象,有_next_方法的可迭代对象叫迭代器
1、iter函数可以把可迭代对象转化为迭代器
2、使用next函数时,会返回当前元素,并且把指针指向下个元素,当没有时,stoplteration异常
3、for in 循环对于可迭代对象,首先调用iter方法转化为可迭代对象,然后不断调用next方法,直到stoplteration异常
转载于:https://blog.51cto.com/420612134/2062880