高级特性(20160811).md
2017-06-16 14:04
120 查看
切片
Python提高切片操作符
迭代
在给定list或tuple,我们可以通过
Python的
如何判断一个对象是可迭代对象呢?方法是通过collections模块的Iterable类型判断
列表生成式
列表生成式可以用更短的代码达到循环的效果。
写列表生成式时,把要生成的元素
还可以使用两层循环
生成器
如果列表元素可以按照某种算法推算出来,从而节省大量的空间。这种一边循环一边计算的机制,称为生成器:generator。
创建
打印生成器函数可以使用
generator保存的是算法,每次调用
如果一个函数定义中包含
小结
1. 凡是可作用于
1. 凡是可作用于
1. 集合数据类型如
Python提高切片操作符
迭代
在给定list或tuple,我们可以通过
for循环来遍历。
Python的
for循环抽象程度高于Java。
如何判断一个对象是可迭代对象呢?方法是通过collections模块的Iterable类型判断
python >from collections import Iterable >isinstance('abc', Iterable) >
列表生成式
列表生成式可以用更短的代码达到循环的效果。
写列表生成式时,把要生成的元素
x * x放到前面,后面跟
for循环,就可以把list创建出来
for循环后面还可以加上if判断,这样我们就可以筛选出仅偶数的平方:
python >[x*x for x in range(1,11) if x%2 == 0] >[4,16, 36, 64, 100] >
还可以使用两层循环
python >[m+n for m in 'ABC' for n in 'XYZ'] >['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ'] >
生成器
如果列表元素可以按照某种算法推算出来,从而节省大量的空间。这种一边循环一边计算的机制,称为生成器:generator。
创建
L和
g的区别仅在于最外层的
[]和
(),
L是一个list,而
g是一个generator。
打印生成器函数可以使用
next(),获取下一个返回值。
generator保存的是算法,每次调用
next(),就计算下一个元素的值,可使用
for循环
如果一个函数定义中包含
yield关键字,那么这个函数就不再是一个普通函数,而是一个generator
小结
1. 凡是可作用于
for循环的对象都是
Iterable类型;
1. 凡是可作用于
next()函数的对象都是
Iterator类型,它们表示一个惰性计算的序列;
1. 集合数据类型如
list、
dict、
str等是
Iterable但不是
Iterator,不过可以通过
iter()函数获得一个
Iterator对象。
相关文章推荐
- C#高级特性
- Python的高级特性6:使用__slots__真的能省很多内存
- Python的高级特性8:你真的了解类,对象,实例,方法吗
- JVM高级特性与实践(八):虚拟机的类加载机制
- scala高级特性
- JavaSE复习之十 高级特性:IO流和文件 补充(4)
- Redis学习第八课:Redis高级实用特性(一)
- C/C++结构体的一个高级特性――指定成员的位数
- 面向对象高级特性===Java抽象类的概念和使用
- Wireshark 高级特性
- JAVA高级特性 - 注解
- 高级特性(7)- 高级AWT
- Visual Studio 2015 速递(4)——高级特性之移动开发
- spring开发指南(夏昕)--Spring 高级特性:Spring MVC中的异常处理
- 《深入java虚拟机--JVM高级特性与最佳实践》学习笔记(三) GC原理与垃圾收集器
- Redis基础、高级特性与性能调优-Redis的数据结构和相关常用命令
- 数据库高级特性(听课讲的,如果之后用到再具体百度)
- c++函数的高级特性
- 《java核心技术_卷二:高级特性》(一)1-7章 思维导图
- Java高级特性之泛型