#!/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
语句。
答案 0 :(得分:2)
您可以在列表推导的左侧(即for
关键字前面的语句中执行此操作:
y = [1 if z > 0 else 0 for z in x]
答案 1 :(得分:1)