三元表达式,生成器 表达式

三元表达式:

name=input('姓名>>: ')
res='NB' if name == 'wesley' else 'SB'
print(res)

姓名>>: wesley
NB

列表推导式:

[expression for item1 in iterable1 if condition1
for item2 in iterable2 if condition2
...
for itemN in iterableN if conditionN
]
names=['wen_SB','wesley']
res=[names.remove(i) for i in names if i.endswith('SB')]     #直接执行表达式,不产生其他的
print(names)
['wesley']

生成器表达式:

(expression for iter_val in iterable)

(expression for iter_val in iterable if cond_expr)

names=['wen_SB','wesley',]
res=(names.remove(i) for i in names if i.endswith('SB'))
print(res.__next__())      #类似于必须启动这个生成器后才能执行表达式
print(names)

None
['wesley']

原文地址:https://www.cnblogs.com/wuxi9864/p/9894578.html