码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2019-01-20 15:01:32      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:就是   iter   src   pen   技术   put   append   gif   tor   

一 三元表达式

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 item2 in iterable2 if condition2
...
for itemN in iterableN if conditionN
]
类似于
res=[]
for item1 in iterable1:
    if condition1:
        for item2 in iterable2:
            if condition2
                ...
                for itemN in iterableN:
                    if conditionN:
                        res.append(expression)

#3、优点:方便,改变了编程习惯,可称之为声明式编程
技术分享图片

三 生成器表达式

技术分享图片
#1、把列表推导式的[]换成()就是生成器表达式

#2、示例:生一筐鸡蛋变成给你一只老母鸡,用的时候就下蛋,这也是生成器的特性
>>> chicken=(‘鸡蛋%s‘ %i for i in range(5))
>>> chicken
<generator object <genexpr> at 0x10143f200>
>>> next(chicken)
‘鸡蛋0‘
>>> list(chicken) #因chicken可迭代,因而可以转成列表
[‘鸡蛋1‘, ‘鸡蛋2‘, ‘鸡蛋3‘, ‘鸡蛋4‘,]

#3、优点:省内存,一次只产生一个值在内存中

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

标签:就是   iter   src   pen   技术   put   append   gif   tor   

原文地址:https://www.cnblogs.com/zhangshuaihui/p/10294673.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!