生成器、列表推导式、生成器表达式

一、

# def g_function():
#     print(555)
#     ret1 = yield {1,3}
#     print(666)
# g = g_function()
# print(g.__next__())
# print(g.__next__())    # 一个 next 对应一个 yield , 生成器函数 ,只有一个yield 所以报错

def g_function():
    print(555)
    ret1 = yield {1,3}
    print(ret1)
    print(666)
    yield "success"
g = g_function()
print(g.__next__())
# print(g.__next__())  # None 666 success
print(g.send("hello world"))   # 上一个yield 表达式,传值 ,赋值 给 左边的变量    # hello world 666 success

原文地址:https://www.cnblogs.com/chris-jia/p/9505045.html

时间: 2024-11-08 15:02:00

生成器、列表推导式、生成器表达式的相关文章

python 【迭代器 生成器 列表推导式】

python [迭代器  生成器  列表推导式] 一.迭代器 1.迭代器如何从列表.字典中取值的 index索引 ,key for循环凡是可以使用for循环取值的都是可迭代的可迭代协议 :内部含有__iter__方法的都是可迭代的迭代器协议 :内部含有__iter__方法和__next__方法的都是迭代器 print(dir([1,2,3])) lst_iter = [1,2,3].__iter__() print(lst_iter.__next__()) print(lst_iter.__ne

列表推导式----生成器表达式

列表推导式: 基本形式: [表达式  for  参数  in  可迭代对象]   或者 [表达式  for  参数  in  可迭代对象  if   条件] 实例: 1 l = [] 2 for i in range(100): 3 l.append('egg%s' %i) 4 print i 5 6 #不带if条件 7 l = ['agg%s' %i for i in range(100) ] 8 9 #带if条件 10 l = ['agg%s' %i for i in range(100)

(列表推导式,生成器表达式,内置函数)

一,列表生成式 示例一: 生成1~100的列表 生成1-100的列表 1 2 3 4 5 li = [] for i in range(1,101):     li.append(i) print(li) 执行输出: [1,2,3...] 生成python1期~11期li = []for i in range(1,12): li.append('python{}期'.format(i))print(li) 执行输出: ['python1期', 'python2期', 'python3期'...]

三元表达式 列表推导式 生成器表达式

# 三元表达式# def my_max(x,y):# if x >= y:# return x# else:# return y## res=my_max(1,2)# print(res) # 2 # x=10# y=20# res=x if x >= y else y## print(res) # 20 # name=input('>>:name').strip()# res='Yes' if name == 'OBOS' else 'No'## print(res) # 列表推

python基础-三元表达式/列表推导式/生成器表达式

1.三元表达式:如果成立返回if前的内容,如果不成立返回else的内容 name=input('姓名>>: ') res='SB' if name == 'alex' else 'NB' print(res) 2.列表推导式:l=['egg'+str(i) for i in range(1,11)] print(l) 3.生成器表达式: l=('egg'+str(i) for i in range(1,11) if i >6) for i in l: print(i) 原文地址:http

Python---迭代器,生成器,列表推导式

# 02,迭代器# 可迭代对象:内部含有__iter__# 迭代器:可迭代对象.__iter__()# 迭代器:内部含有__iter__且__next__# 判断 __iter__ 在不在dir(对象中)# isinstance()# 节省内存.# 惰性机制.# 单向不可逆.# for循环的机制:# while# pass# 可迭代对象# 迭代器# 两者区别# 模拟for循环机制## 03,生成器# 本质上是迭代器,用python代码构建的.# 生成器定义# 生成器的写法# yield# sen

python生成器和推导式

一.生成器 什么是生成器.生成器实质就是迭代器. 在python中有三种方式来获取生成器: 1.通过生成器函数 2.通过各种推导式来实现生成器 3.通过数据的装换也可以获取生成器 def func(): print("111") return 222 ret = func() print(ret) 结果:111 222 将函数中的return换成yield就是生成器 def func() print("111") yield 222 ret = func() pri

生成器表达式,列表推导式

两者的区别在于一个用的是(),另外一个用B[] 生成器表达式: G = (x**2 for x in range(5)) 列表推导式: L = [x**2 for x in range(5)]

生成器表达式 和 列表推导式

列表推导式   [i** 2 for i in [1,2,3]] print(li) li2=[int(i/2) for i in range(0,7,2)] print(li2) 生成器表达式 # 生成器 表达式 简化代码 g=(i for i in range(5)) # 没有元组推导式 for i in g: print(i) 例子  0 list=[{'name':'alex','age':80},{'name':'egon','age':40},{'name':'neza','age'

第9条:用生成器表达式来改写数据量较大的列表推导式

核心知识点: (1)当输入的数据量较大时,列表推导可能会因为占用太多内存而出问题. (2)由生成器表达式所返回的迭代器,可以逐次产生输出值,从而避免内存用量问题. (3)把某个生成器表达式所返回的迭代器,放在另一个生成器表达式的for子表达式中,即可将二者结合起来. (4)串在一起的生成器表达式执行速度很快. 列表推导式的缺点是:在推导过程中,对于输入序列中的每个值来说,可能都要创建仅含一项元素的全新列表. 当输入的数据比较少时,不会出任何问题,但如果输入的数据非常多,那么可能会消耗大量内存,并