推导式:用一行循环判断遍历出一系列数据的方式
注意:带有判断条件的推导式只能是单项判断↓
注意:多循环判断条件的推导式只能是for循环嵌套单项判断,而不是while循环↓
集合推导式:
字典推导式:
zip:两组列表组成iterable时如果有无法配对的独立值会被舍弃.
可迭代对象.__iter__() 可简写成 iter(可迭代对象)
迭代器.__next__() 可简写成next(迭代器)
元组的推导式叫生成器:generator(gen)
总结:
推导式分为列表集合字典三种推导式,是一种用一行循环判断遍历出一系列数据的方式
推导式和lambda相似.都是将函数的结果一行代码得出,区别在意推导式只能用for循环和判断,而且只能是单项判断,
三目运算符的结果在冒号的右侧,附加判断条件的左侧,而推导式算结果的函数内容要放在最左侧,而且括号已经在这些内容的外边括好了.最后赋予一个变量名即可
普通推导式格式为: for I in 迭代器,i是想要的值放到前边. 要的是列表就用列表包起来,赋予一个变量名即可是一个普通的推导式.
带有判断条件的推导式:跟普通推导式格式一样,就是加上判断条件放到迭代器名字的后边
多循环推导式的格式是:如果是双循环就按顺序将两个循环放到一行,如果结果需要str拼接之类的处理就加到这两个循环的前边,用来显示结果,最后直接打印即可
Zip的功能 : 将iterable中的数据一个一个拿出来配对组成元组放入迭代器,如果两组容器类型组成一个迭代器时不能匹配成对的就会被舍弃掉
生成器(generator)是迭代器的一种,区别在于生成器是可以重写逻辑的
生成器创建的两种或方式是:生成器表达式(也就是一个元组) 另外一种是用def定义一个函数然后用yield关键字来生成生成器函数