三元运算,列表解析,生成器表达式

生成器: 可以理解为一种数据类型,这种数据类型自动实现了迭代器协议(其他的数据类型调用了自己内置的_iter_()方法),所以生成器就是可迭代对象

# 三元表达式name = ‘alex‘name = ‘liuhaiquan‘res = ‘SB‘if name == ‘alex‘ else ‘shuai‘print(res)

#列表解析eggs_li = []for i in range(10):    eggs_li.append(‘鸡蛋%s‘ %i)print(eggs_li)#结果:[‘鸡蛋0‘, ‘鸡蛋1‘, ‘鸡蛋2‘, ‘鸡蛋3‘, ‘鸡蛋4‘, ‘鸡蛋5‘, ‘鸡蛋6‘, ‘鸡蛋7‘, ‘鸡蛋8‘, ‘鸡蛋9‘]

#等同于l = [‘鸡蛋%s‘ % i for i in range(10)]l2 = [‘鸡蛋%s‘ % i for i in range(10) if i > 5]print(l)#结果:[‘鸡蛋0‘, ‘鸡蛋1‘, ‘鸡蛋2‘, ‘鸡蛋3‘, ‘鸡蛋4‘, ‘鸡蛋5‘, ‘鸡蛋6‘, ‘鸡蛋7‘, ‘鸡蛋8‘, ‘鸡蛋9‘]print(l2)#结果:[‘鸡蛋6‘, ‘鸡蛋7‘, ‘鸡蛋8‘, ‘鸡蛋9‘]

laomuji = (‘鸡蛋%s‘ %i for i in range(10))print(laomuji) #老母鸡就是生成器print(laomuji.__next__()) #输出结果:鸡蛋0print(laomuji.__next__()) #输出结果:鸡蛋1print(laomuji.__next__()) #输出结果:鸡蛋2print(next(laomuji)) #输出结果:鸡蛋3

print(sum(i for i in range(100000000)))

原文地址:https://www.cnblogs.com/lhqlhq/p/8733223.html

时间: 2024-10-20 05:02:37

三元运算,列表解析,生成器表达式的相关文章

190329迭代器-生成器-三元运算-列表解析

一.迭代器 迭代器协议:对象必须提供一个next()方法,执行该方法要么返回迭代中的下一项,要么抛出一个Stoplteration异常终止迭代 可迭代对象:遵循迭代器协议,即可迭代对象,(可以被for循环的就是可迭代对象) l = {1,2,3} iter_l = l.__iter__() #将列表转换为迭代器 print(iter_l.__next__()) print(next(iter_l)) 二.生成器 1.生成器函数 def f(): for i in range(10): yield

Python__三元表达式+列表解析+生成器表达式

x = 10res = 'ok' if x > 3 else 'no'print(res)#列表解析l = ['egg%s'%i for i in range(10)]print(l)l = ['egg%s'%i for i in range(10) if i > 5]print(l)names = ['alex_sb','egon','wupeiqi_sb','yuanhao_sb']names_new = [name for name in names if name.endswith('

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

一 三元表达式 name=input('姓名>>: ') res='SB' if name == 'alex' else 'NB' print(res) 二 列表推导式 #1.示例 egg_list=[] for i in range(10): egg_list.append('鸡蛋%s' %i) egg_list=['鸡蛋%s' %i for i in range(10)] #2.语法 [expression for item1 in iterable1 if condition1 for

Python - 列表解析式/生成器表达式

列表解析式: [expr for iter_var in iterable if cond_expr] 生成器表达式: (expr for iter_var in iterable if cond_expr) 二者的区别: -列表解析式需要生成所有的数据: -生成器解析式不是真正创建列表,而是返回一个生成器,这个生成器在每次计算出一个条目后,把这个条目yield出来.生成器表达式使用了延迟计算,在使用内存上更有效.

python\列表和生成器表达式

一.协程函数的应用 写一个装饰器用于让协程函数不需要输入再执行一次next()函数 分析: 在装饰器中生成该协程函数的生成器, 并且执行一次next()函数 def firstNext(func): def wrapper(*args, **kwargs): g = func(*args, **kwargs) next(g) return g return wrapper @firstNext def eater(name): print("{} start to eat".forma

列表生成式&生成器表达式

一.列表生成式 def func(): return [lambda x:i*x for i in range(4)] print([j(2) for j in func()]) 结果:[6,6,6,6] 二.生成器表达式 def func(): return (lambda x:i*x for i in range(4)) print([j(2) for j in func()]) 结果:[0,2,4,6] 原文地址:https://www.cnblogs.com/gpd-Amos/p/899

Python自动化运维之7、格式化输出、生成器、迭代器、列表解析、迭代器表达式

Python格式化输出: Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] (1)百分号格式化 %[(name)][flags][width][.precision]typecode .... (name) 可选,用于选择指定的key flags 可选,可供选择的值有: + 右对齐:正数前加正好,负数前加负号: - 左对齐:正数前无符号,负数前加负号: 空

python之列表解析与生成器

防伪码:忘情公子著 什么是列表解析? 列表解析就是根据已有列表,高效生成新列表的方式 列表解析是python迭代机制的一种应用,它常用于实现创建新的列表,因此要放置于[]中 语法: [expression for iter_var in iterable][expression for iter_var in iterable if cond_expr] 例: In [1]: L = [i**2 for i in xrange(9)] In [2]: print L[0, 1, 4, 9, 16

Python随心记--三元运算

sum(list[range(40)]) #速度比下面的慢 sum(x ** 2 for i in xrange(4)) name = 'pang' res = 'is' if name == 'pang' else 'chun' print(res) 三元运算列表解析 l = [i for i in range(10)] l = [i for i in range(10) if i > 5] print(l) l = (i for i in range(10)) #生成器表达式 print(l

python迭代器和生成器(3元运算,列表生成式,生成器表达式,生成器函数)

1.1迭代器 什么是迭代器: 迭代器是一个可以记住遍历的位置对象 迭代器对象从集合的第一个元素元素开始访问,直到所有元素被访问完结束,迭代器只能往前不会后退. 迭代器有两个基本方法:iter ,next 方法 内置函数iter(),next()  本质上都是用的对象.__iter__(),__next__()的方法 内置函数 iter(iterable),表示把可迭代对象 变成迭代器(iterator) 内置函数next(iterator) ,表示查看下一次迭代的值(当然也可以用 iterato