python-3高级特征
2018-06-18 02:51:15来源:未知 阅读 ()
1-切片
L = ["qinzb",'fengyong','bingyan'] L[0:3] #截取从索引0开始到索引3结束(不包含索引3) L[:3] #如果索引是从0开始则可省略 L[-1:] #获取最后1个元素 L = list(range(100)) #创建0-99数列 L[10:20] #[10, 11, 12, 13, 14, 15, 16, 17, 18, 19] L[:10:2] #[0, 2, 4, 6, 8] 前10个数,每2个取一个: L[:] #甚至什么都不写,只写[:]就可以原样复制一个list: #tuple也可以用切片操作 (0, 1, 2, 3, 4, 5)[:3] #(0, 1, 2) #字符串'xxx'也可以看成是一种list 'ABCDEFG'[:3] #'ABC' #Python没有针对字符串的截取函数,只需要切片一个操作就可以完成,非常简单
2-迭代
d = {'a':1, 'b':2, 'c':3} for key in d: print(key) list = ['qinzb','fengyong','bingyan']; for i,value in enumerate(list): #Python内置的enumerate函数可以把一个list变成索引-元素对 print(i,value) for x, y in [(1, 1), (2, 4), (3, 9)]: print(x, y) from collections import Iterable isinstance('abc', Iterable) # str是否可迭代, 返回True
3-列表生成式
list(range(1,11)) #生成1-11之间的整数 [x * x for x in range(1,11)] #生成[1x1, 2x2, 3x3, ..., 10x10] [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']
3.2利用两个变量生成list
d = {'x':'A', 'y':'B', 'z':'C'} for k,v in d.items(): print(k,'=',v) [k+'='+v for k,v in d.items()] #同上面for方法,
3.3 使用案例
L = ['Hello', 'World', 'IBM', 'Apple'] [s.lower() for s in L] #注意L值不会变,返回值会变成小写 import os print([d for d in os.listdir('c:\\')]) #列出C盘下所有文件夹和目录 #isinstance(x, str) 判断str是否为字符串,是返回True,否则返回False
4-生成器
比如,著名的斐波拉契数列(Fibonacci),除第一个和第二个数外,任意一个数都可由前两个数相加得到:
1, 1, 2, 3, 5, 8, 13, 21, 34, ...
如果一个函数定义中包含yield关键字,那么这个函数就不再是一个普通函数,而是一个generator:
def fib(max): n, a, b = 0, 0, 1 while n < max: yield b #print(b) a, b = b, a + b n = n + 1 return 'done' print(list(fib(6))) #打印出来 for n in fib(6): print(n) #打印
5-迭代器
我们已经知道,可以直接作用于for循环的数据类型有以下几种:
一类是集合数据类型,如list、tuple、dict、set、str等;
一类是generator,包括生成器和带yield的generator function。
这些可以直接作用于for循环的对象统称为可迭代对象:Iterable。
可以使用isinstance()判断一个对象是否是Iterable对象:
生成器都是Iterator对象,但list、dict、str虽然是Iterable,却不是Iterator。
from collections import Iterable isinstance([], Iterable) #是否可迭代 True isinstance('abc', Iterable)#True isinstance({}, Iterable)#True isinstance((x for x in range(10)), Iterable) #True isinstance(100, Iterable) #False
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:Python微信公众号开发
- 千锋Python高级视频教程 2019-07-24
- 第四章 函数之高级函数 2019-07-24
- python数据库-MySQL数据库高级查询操作(51) 2019-07-24
- Python:字典的高级知识 2019-07-24
- python学习-33 max和min函数的高级使用 2019-07-24
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash