python高级特性、函数式编程、面向对象
2016-03-25 16:48
639 查看
切片
list和tuple、字符串。
L[:]
L[1:4]
L[-1]
str[::2]
迭代
python的迭代:只要是可迭代对象都可以,和下标没关系。
判断一个对象是否是可迭代的,通过collections模块中的Iterable类型判断。
列表生成式 -- List Comprehensions
用来创建list的生成式
生成器 -- 解决列表生成式的内存溢出问题。
在循环过程中不断推算后续的元素,不必创建完整的list,节省内存。一边循环一边计算 -- 生成器 -- generator
正常的做法是:在创建了一个generator后,使用for来迭代。
定义generator的另一种方法:在函数定义中包含yield关键字。
list和tuple、字符串。
L[:]
L[1:4]
L[-1]
str[::2]
迭代
python的迭代:只要是可迭代对象都可以,和下标没关系。
判断一个对象是否是可迭代的,通过collections模块中的Iterable类型判断。
from collections import Iterable isinstance('abc', Iterable) isinstance([1,2,3], Iterable) isinstance(123, Iterable) -- false对list实现下标循环,使用python的enumerate函数把list变成索引-元素对。
for i, value in enumerate(['a', 'b', 'c']): print(i, value) 0 a 1 b 2 c # 同时引用两个变量 for x, y in [(1, 1), (2, 4), (3, 9)]: print(x, y) 1 1 2 4 3 9
列表生成式 -- List Comprehensions
用来创建list的生成式
list(range(1,11)) [1,2,3,4,5,6,7,8,9,10] [x * x for x in range(1, 11)] [1, 4, 9, ...] # 列表生成式中的if判断,选出符合条件的 [x * x for x in range(1, 11) if x % 2 == 0 ] [ 4, 16, 36, 64, 100] [m+n for m in 'abc' for n in 'xyz'] ['ax', 'ay', 'az', 'bx', 'by', 'bz', 'cx', 'cy', 'cz'] # 使用列表生成式,列出目录下的所有文件和目录 import os [d for d in os.listdir('.')] # 列表生成式使用dict生成list d = {'x':'a', 'y':'b', 'z':'c'} [k + '=' + v for k, v in d.items()] ['y=b', 'x=a', 'z=c']
生成器 -- 解决列表生成式的内存溢出问题。
在循环过程中不断推算后续的元素,不必创建完整的list,节省内存。一边循环一边计算 -- 生成器 -- generator
正常的做法是:在创建了一个generator后,使用for来迭代。
定义generator的另一种方法:在函数定义中包含yield关键字。
def fib(max): n, a, b = 0, 0, 1 while n < max: yield b a, b = b, a+b n = n+1 return 'done'该generator的函数,在每次调用next()的时候执行,遇到yield语句返回,再次执行从上次返回的yield语句继续执行。
相关文章推荐
- 7个perl数组高级操作技巧分享
- MySQL高级增删改查
- mysql--高级操作
- MySQL数据库的高级操作
- python中的urllib和urllib2
- python html格式的pdf转换成pdf文件
- Python爬虫:一些常用的爬虫技巧总结
- python的zeroMQ介绍
- Python3.x中的print()函数
- python笔记---常见异常
- 机器学习基础(二十)—— 数学语言与 Python 代码
- 将python程序打包成.exe文件
- python3的字符串格式化
- 动手写一个Python Web 框架学习笔记 - 搭建开发环境 (1)
- 《Python数据分析基础教程:Numpy学习指南》- 速记 - 第四章
- PYTHON实现把PPT文档中的内容导出到TXT文件中
- 使用python进行web抓取
- 《Python基础教程》(一)数字和表达式
- cx_freeze打包Python程序
- python3 Unicode 编码转换中文显示