py高级特性2.0

一、列表生成式

py内置用来创建list的生成式

list(range(1,11))

[xx for x in range(1,11)]
形式+范围
[x
x for x in range(1,11) if x % 2==0]
形式+范围+限定
[m+n for m in 'abc' for n in 'xyz']
两层循环,全排列'ax'

列出所有文件和目录名
[d for d in os.listdir('.')]
可以同时迭代key and value
for k,v in d.items():
直接生成list
[k+'='+v for k,v in d.items()]
字母变成小写
[s.lower() for s in l]

二、生成器:generator

将列表元素按照某种算法算出来,在循环中不断推算出后续元素

不必建立完整list,节省大量空间

1、将列表生成式的[]改成()

l=[xx for x in range(10)]
g=(x
x for x in range(10))

2、打印:

next(g)一个个打印
for循环打印

注:赋值语句

a,b=b,a+b
同时进行

3、把函数中的print改为yield

generator的函数每次调用next()时执行,遇到yield返回,再次执行时从上次返回的yield语句处继续执行
层次性,不断中断

三、迭代器

1、可迭代对象iterable:可直接作用于for循环的对象

包括集合数据类型list,tuple,dict,set,str
与generator(生成器与带yield的generator function)
通过isinstance()判断

2、迭代器iterator:可以被next()函数调用并不断返回下一个值

通过isinstance判断

3、iter()函数

将list,dict,str等iterable变成iterator

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Python 是一种相当高级的语言,通过 Python 解释器把符合语法的程序代码转换成 CPU 能够执行的机器码...
    Python程序媛阅读 1,941评论 0 3
  • # 第一优先级规则声明: # 除了梦境,每一个意识主进程都必须与一个身体参与的机械进程相匹配,否则结束意识主进程。...
    李洞BarryLi阅读 3,886评论 0 1
  • PYTHON-进阶-ITERTOOLS模块小结转自wklken:http://wklken.me/posts/20...
    C_Y_阅读 1,005评论 0 2
  • 《三行情诗》 季节变换 昼夜交替 我们的爱无法平衡 你假装忙 我真的闲 我们没有联系假假真真? 你从不说“爱我” ...
    金书js阅读 386评论 2 4
  • 1 有次节假日,从家返校,走出汉口火车站后,在地铁站买票。 塞了一张二十块,机器吞进后没有任何反应,钱也吐不出来,...
    文亦小段阅读 200评论 0 4