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

三元表达式、列表生成式、生成器表达式

时间:2019-11-14 18:17:27      阅读:65      评论:0      收藏:0      [点我收藏+]

标签:返回   tor   object   pytho   条件   ret   取出   数据   列表生成式   

三元表达式

三元表达式就是可以将if...else...分支,变成一行

语法

条件成立返回左边的值 if 判断条件 else 不成立返回右边的值

def max(num1,num2):
    # 条件成立返回左边的值 if 判断条件 else 不成立返回右边的值
    res = num1 if num1>num2 else num2
    return res
res = max(10,20)
print(res)

列表生成式

列表生成式就是可以一行实现生成列表

语法

[取出的每一个任意值添加到当前列表中 for 可迭代对象中取出每一个值 in 可迭代对象]

# 取出的每一个任意值添加到当前列表中 for 可迭代对象中取出每一个值 in 可迭代对象
list1 = [line for line in range(1,101)]     # 生成一个列表,里边是1-100
print(list1)

for的右边是循环次数,可以取出可迭代对象中的每一个值

for的左边可以为当前列表添加值

list1 = ['sean','tank','egon','alex']
# 为list1中的每个name后加上'_DSB'并过滤掉alex
new_list = [name + '_DSB' for name in list1 if not  name == 'alex']
print(new_list)

生成器表达式(生成器生成式)

——列表生成式

[line for line in rang(1,6)]--->[1, 2, 3, 4, 5]

——生成器生成式

()--->返回生成器

g = (line for line in range(1,6))--->g生成器(1, 2, 3, 4, 5)

列表生成器(当数据量比较小时采用)

优点:可以依赖索引取值,取值方便

缺点:浪费资源

生成器生成式(当数据量较大时采用)

优点:节省资源

缺点:取值不方便

# 生成一个有1000个值的生成器
g = (line for line in range(1, 1000001))
print(g)
# <generator object <genexpr> at 0x00000203262318E0>

三元表达式、列表生成式、生成器表达式

标签:返回   tor   object   pytho   条件   ret   取出   数据   列表生成式   

原文地址:https://www.cnblogs.com/aheng/p/11858922.html

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