博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Day4_生成器_三元表达式_列表解析_生成器表达式
阅读量:5817 次
发布时间:2019-06-18

本文共 982 字,大约阅读时间需要 3 分钟。

生成器:在函数内部包含yield关键,那么该函数执行的结果就是生成器。

  生成器就是迭代器。

def func():    print('first')    yield 111111    print('second')    yield 222222    print('third')    yield 333333g=func()

 yield的功能:

1,把函数结果做成生迭代器(以一种优雅的方式封装好_iter_)

2,函数暂停与在继续运行的状态是由yield来保存的

 

yield和return的比较??

相同:都有返回值的功能

不同:return只能返回一次值,而yield可以返回多次值

 

23:13

三元表达式:

正常的语法写一个if判断:

def foo():    if x > 3:        return 'ok'    else:        return 'no'

 三元表达式的写法是:

  条件成立的结果放在左边,中间写判断条件,右边写不成立的条件

x=10 res ='ok'  if x > 3 else 'no'

 

列表解析:

可以讲for循环直接写到列表中,例如:写了一个向空列表添加值的功能:

l=[]for i in range(10):    l.append('egg%s' %i)print (l)

 列表解析就是将for循环需要执行的写在列表左边,执行条件写在右边。

l=[]l=['egg%s %i' %i for i in range(10) if i >= 5 ]print(l)

 如果for循环有条件的话:

  需要加到for循环的后边。

 

应用:

比如说将列表里的值全都变成平方:

numb=[1,2,3,4,5]num_new=[items**2 for item in nums if item > 3]print (nums_new)

 

列表是将列表的值全部加载出来,会很耗内存,我们可以利用()来解决。

num_new=(items**2 for item in nums if item > 3)

print(num_new)

print(next(g))

print(next(g))

 

转载于:https://www.cnblogs.com/sexiaoshuai/p/7264263.html

你可能感兴趣的文章
1月9日学习内容整理:爬虫基本原理
查看>>
安卓中数据库的搭建与使用
查看>>
AT3908 Two Integers
查看>>
渐变色文字
查看>>
C++ 0X 新特性实例(比较常用的) (转)
查看>>
node生成自定义命令(yargs/commander)
查看>>
各种非算法模板
查看>>
node-express项目的搭建并通过mongoose操作MongoDB实现增删改查分页排序(四)
查看>>
PIE.NET-SDK插件式二次开发文档
查看>>
如何创建Servlet
查看>>
.NET 设计规范--.NET约定、惯用法与模式-2.框架设计基础
查看>>
win7 64位+Oracle 11g 64位下使用 PL/SQL Developer 的解决办法
查看>>
BZOJ1997:[HNOI2010]PLANAR——题解
查看>>
BZOJ1014:[JSOI2008]火星人prefix——题解
查看>>
使用Unity3D引擎开发赛车游戏
查看>>
HTML5新手入门指南
查看>>
opennebula 开发记录
查看>>
ubuntu 修改hostname
查看>>
sql 内联,左联,右联,全联
查看>>
C++关于字符串的处理
查看>>