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

一、迭代器

  1. 迭代器协议:对象必须提供一个next()方法,执行该方法要么返回迭代中的下一项,要么抛出一个Stoplteration异常终止迭代
  2. 可迭代对象:遵循迭代器协议,即可迭代对象,(可以被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 i

t = f()
print(t.__next__())
print(t.__next__())
print(t.__next__())

2、生成器表达式

xiadangongji = ("鸡蛋%s" %i for i in range(10))
print(xiadangongji.__next__())  #鸡蛋0
print(xiadangongji.__next__())  #鸡蛋1

三、三元表达式

age = 18
res = "未成年" if age < 18 else "已成年"
print(res)

四、列表解析

egg = ["鸡蛋%s" %i for i in range(10)]
print(egg)  #['鸡蛋0', '鸡蛋1', '鸡蛋2', '鸡蛋3', '鸡蛋4', '鸡蛋5', '鸡蛋6', '鸡蛋7', '鸡蛋8', '鸡蛋9']
egg2 = ["鸡蛋%s" %i for i in range(10) if i > 5]
print(egg2)  #['鸡蛋6', '鸡蛋7', '鸡蛋8', '鸡蛋9']

原文地址:https://www.cnblogs.com/L-dongf/p/10657649.html

时间: 2024-11-05 15:50:51

190329迭代器-生成器-三元运算-列表解析的相关文章

函数嵌套 ,名称空间与作用域 ,闭包函数 ,装饰器 ,迭代器, 生成器 三元表达式,列表解析,生成器表达式 递归与二分法, 内置函数

函数嵌套名称空间与作用域闭包函数装饰器迭代器生成器三元表达式,列表解析,生成器表达式递归与二分法内置函数--------------------------------------------函数的嵌套调用:在调用一个函数的过程中,又调用了其他函数函数的嵌套定义:在一个函数的内部,又定义另外一个函数def max(x,y): if x>y: return x else: return ydef max1(a,b,c,d): res=max(a,b) res2=max(res,c) res3=ma

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('

三元表达式 列表解析

三元表达式 # 三元表达式 # x=2 # y=3 # res=x if x > y else y #判断条件if x > y放中间,如果成立结果放判断条件左边,否则就放在右边 # print(res) #打印结果为y def max2(x,y): # if x > y: # return x # else: # return y return x if x > y else y #三元表达式:条件放中间,True放左边,False右边 print(max2(2,3)) 这,感觉没

Python基础第九天——迭代对象、 迭代器对象、生成器、三元表达式列表解析、生成器表达式

鸡汤: 要时刻不断地给自己灌输一种思想:都TMD是个人,凭什么他会而我就不会?王候将相宁有种乎?我承认人有天赋的差别,但是勤奋能弥补缺陷!所以,根据以上观点得出以下结论,只要出生时不是个傻子,那么就没有蠢的人,只有懒的猪!只要勤奋上进,小白也会变大神.加油 --奔跑吧小白 一.迭代对象.迭代器对象 1.迭代 定义:带有__iter__方法的就是可迭代对象 python常用的数据类型中,除了数字外,都是迭代对象. 例:用isinstance判断python常用数据类型是否为迭代对象,经验证,pyt

Day 21 三元表达式、生成器函数、列表解析

知识点程序: 1 #! /usr/bin/env python 2 # -*- coding: utf-8 -*- 3 # __author__ = "DaChao" 4 # Date: 2017/6/16 5 6 l = [i for i in range(100) if i%2 > 0] 7 print(l) 8 9 ########################### 10 #生成器 generator!!! 模拟tail grep功能 11 ##############

生成器 三元表达式 列表生成式 匿名函数 内置函数

生成器 1.什么是生成器? ? -生成的工具 ? -生成器是一个自定义的迭代器,本质上是一个迭代器. 2.如何实现生成器? -但凡在函数内定义的yield ? -调用函数时,函数体代码不会执行 ? 会返回一个结果,这个结果就是生成器. 3.yield ? -每一次的yield都会往生成器对象中添加一个值. ? -yield只能在函数内定义 ? -yield可以保存函数的暂停状态 yield和return的对比 ? -相同点: ? 返回值的是不限制的: ? -不同点 ? return一次只可以返回

python 10 迭代器和三元运算符

一.迭代器 1.迭代器协议:对象必须提供一种next方法,执行该方法要么返回迭代中的下一项,要么引起一个stopIteration异常,终止迭代 2.可迭代对象:实现了迭代器协议的对象 3.python 的内部工具(for,sum,min,max函数),使用迭代器协议访问对象 二 for循环机制 for循环本质:循环所有对象,全部使用迭代器协议 注意1:字典,字符串,列表,元组,集合,文件对象,都不是可迭代对象,for循环时,调用了他们的_iter_方法,将他们转换为可迭代对象 for循环工作:

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 迭代器、生成器和列表解析

迭代器 迭代器在 Python 2.2 版本中被加入, 它为类序列对象提供了一个类序列的接口. Python 的迭代无缝地支持序列对象, 而且它还允许迭代非序列类型, 包括用户定义的对象.即迭代器可以迭代不是序列但表现出序列行为的对象, 例如字典的 key , 一个文件的行, 等等.迭代器有以下特性: 提供了可扩展的迭代器接口. 对列表迭代带来了性能上的增强. 在字典迭代中性能提升. 创建真正的迭代接口, 而不是原来的随机对象访问. 与所有已经存在的用户定义的类以及扩展的模拟序列和映射的对象向后