if 和 else 用于列表理解
if and else for list comprehension
#!/usr/bin/python
x = [0, 2, 1, 1, 1, 1, 3, 3, 5, 1, 1, 4, 1, 2, 1, 2, 2, 2, 1, 7, 2, 1, 0, 3, 1, 1, 2, 0, 1, 0, 1, 1]
y = [1 for z in x if z > 0]
#WANT TO DO
#y = [1 for z in x if z > 0 else 0]
我想在 Python 中的列表理解中同时执行 if
语句和 else
语句。我怎样才能做到这一点?
我想出了 y = [int(bool(z)) for z in x]
,但我想知道您是否可以在列表理解中同时执行 if
和 else
语句。
你可以在list comprehension的左边做(也就是for
关键字前的语句:
y = [1 if z > 0 else 0 for z in x]
是的,这里有一个例子:
y = [1 if z > 0 else 'test' for z in x ]
This 线程也提供了一些关于它的更多细节。
#!/usr/bin/python
x = [0, 2, 1, 1, 1, 1, 3, 3, 5, 1, 1, 4, 1, 2, 1, 2, 2, 2, 1, 7, 2, 1, 0, 3, 1, 1, 2, 0, 1, 0, 1, 1]
y = [1 for z in x if z > 0]
#WANT TO DO
#y = [1 for z in x if z > 0 else 0]
我想在 Python 中的列表理解中同时执行 if
语句和 else
语句。我怎样才能做到这一点?
我想出了 y = [int(bool(z)) for z in x]
,但我想知道您是否可以在列表理解中同时执行 if
和 else
语句。
你可以在list comprehension的左边做(也就是for
关键字前的语句:
y = [1 if z > 0 else 0 for z in x]
是的,这里有一个例子:
y = [1 if z > 0 else 'test' for z in x ]
This 线程也提供了一些关于它的更多细节。