列表生成式,列表生成器,迭代器

来源:互联网 发布:c和c 程序员面试秘笈 编辑:程序博客网 时间:2024/06/06 20:59

#列表生成式,能简化很多代码 
#第一项写需要输出的东西(i*i),中间写for循环,后面写条件

li = [i*i for i in xrange(1,10) if i%2==0]print li

[4, 16, 36, 64] 
#列表生成器,他跟列表生成式的区别相当range和xrange的区别,数据大的时候节省内存空间 
#最简单的办法就把原来的[]换成()就可以了,不过输出变成了迭代对象

li1 = (i*i for i in xrange(1,10) if i%2==0)for i in li1:    print i


16 
36 
64

#函数中的列表生成器 
#函数中包含yield语句的函数会被特地的编译成生成器,当函数被调用时,他们返回一个生成器对象 
#每当遇到yield的时候,可以当成return

def f(n):    sum = 0    i = 0    while(i<n):        sum +=i        i +=1        yield(sum)print (type(f(5)))for i in f(5):    print(i)

type ‘generator’ 




10

#列表生成式:一次性生成所有的数据,然后保存在内存中,适合小量数据 
#列表生成器:返回一个可迭代对象,即‘generator’对象,必须通过循环才能一一取出数据 
#可迭代对象:可以通过循环调用出来的,就是可迭代对象 
#迭代器:简单理解为生成器,必须通过next()调用的,被next()函数调用并不断返回下一个值的对象称为迭代器

打印9*9乘法表

#i取值范围为1, 2, 3, 4, 5, 6, 7, 8, 9for i in xrange(1,10):#每个内层for循环结束后换行,即在输出完九九乘法表一行后换行。    print#j取值范围为1, 2, ..., i    for j in xrange(1,i+1):#逗号用来取消自动换行        print '%d*%d = %d' %(i,j,i*j),
阅读全文
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 北京一证通过期怎么办 小米6音量键进水怎么办 考驾照怕过不了怎么办 学车对车没感觉怎么办 居住证到期2个月怎么办 生育险差一个月怎么办 驾照扣了38分怎么办 新疆转入山东上学怎么办手续 驾照过日期换证怎么办 机动车被扣24分怎么办 车辆被扣24分怎么办 现在深圳牌十年老车怎么办? 护士证过期4年了怎么办 护士资格证延续注册过期了怎么办 护士资格证过期没注册怎么办 护士资格证注册时间过期怎么办 辅警体检视力不行怎么办 护士延续注册体检怀孕怎么办 护士资格证没有延续注册怎么办 申请信用卡没有座机号码怎么办 网上申请信用卡没有座机号码怎么办 我叫上门服务被骗了怎么办 上门服务被骗了3000多怎么办 微信被骗9000元怎么办 奥迪a8气囊灯亮怎么办 驾考站岗迟到了怎么办 老板欠员工工资不给怎么办 如果有一天我没头发了怎么办 苏州公积金密码忘了怎么办 科二考试第二把怎么办 科一老是记不住怎么办 科目二考试没去怎么办 网约车驾龄不到怎么办 科四预约不上怎么办 教练不退钱怎么办找谁 驾考出入证丢了怎么办 科二成绩单丢了怎么办 考驾照的准考证丢了怎么办 驾考预约去不了怎么办 科目一预约没去怎么办 打狂犬疫苗期间感冒了怎么办