三元表达式和生成式详解

三元表达式和生成式

三元表达式

x = 1
y = 2
# 正常版
if x > y:
	print(x)
else:
	print(y)
	
# 装逼版
print x if x > y else print(y)

# 三元表达式(装逼版)语法
# 条件为真执行代码 if 判断条件 else 条件为假执行代码

生成式

# 普通版
l = [1,2,3,4,56,7]

new_l = []
for i in l:
    if i >3:
        new_l.append(i)
print(new_l)


# 装逼版:列表生成式
new_l= [i for i in l if i >3]
print(new_l)

# 字典生成式
dic = {k:v for k,v in items if 条件}

# 集合生成式
set1 = {i for i in l if 条件}

# 生成器表达式:带不带括号无所谓,都是生成器。
g = (i for i in l if 条件)

上述生成式都是一个套路,数据类型的元素 +for循环+判断条件

我们详细说一下生成器表达式,当生成器表达式定义完毕之后,它的内部一个值都没有,一个都没有,一个都没有。然后在外不可以使用next的内置方法将值挨个取出。

posted @ 2020-03-25 15:17  小菜鸟是我  阅读(622)  评论(0编辑  收藏  举报