我们可以elif
在列表理解中使用吗?
示例:
l = [1, 2, 3, 4, 5]
for values in l:
if values==1:
print 'yes'
elif values==2:
print 'no'
else:
print 'idle'
Run Code Online (Sandbox Code Playgroud)
我们能否elif
以类似于上面代码的方式包含我们的列表理解?
例如,答案如下:
['yes', 'no', 'idle', 'idle', 'idle']
Run Code Online (Sandbox Code Playgroud)
到目前为止,我只使用if
和else
列表理解.
Ray*_*ger 202
Python的条件表达式完全是为这种用例设计的:
>>> l = [1, 2, 3, 4, 5]
>>> ['yes' if v == 1 else 'no' if v == 2 else 'idle' for v in l]
['yes', 'no', 'idle', 'idle', 'idle']
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助 :-)
Ign*_*ams 45
>>> d = {1: 'yes', 2: 'no'}
>>> [d.get(x, 'idle') for x in l]
['yes', 'no', 'idle', 'idle', 'idle']
Run Code Online (Sandbox Code Playgroud)
mat*_*fee 23
你可以,有点.
请注意,当您使用sytax时:
['yes' if v == 1 else 'no' for v in l]
Run Code Online (Sandbox Code Playgroud)
您正在使用if/else运算符的三元形式(如果您熟悉C语言,这就像?:
构造:)(v == 1 ? 'yes' : 'no')
.
if/else运算符的三元形式没有内置的'elif',但您可以在'else'条件下模拟它:
['yes' if v == 1 else 'no' if v == 2 else 'idle' for v in l]
Run Code Online (Sandbox Code Playgroud)
这就像说:
for v in l:
if v == 1 :
print 'yes'
else:
if v == 2:
print 'no'
else:
print 'idle'
Run Code Online (Sandbox Code Playgroud)
所以没有像你问过的直接"elif"结构,但可以使用嵌套的if/else语句进行模拟.
归档时间: |
|
查看次数: |
58133 次 |
最近记录: |