python下三元表达式

208 阅读1分钟

python中没有其他语言中的三元表达式,不过有类似的实现方法

其他语言中,例如java的三元表达式是这样

int a = 1;
String b = "";
b =  a > 1? "执行表达式1":"执行表达式2"
System.out.println(b)

在python中只有类似的替代办法

如果a>b的结果为真,h="变量1",如果为假,h="变量2” 比如:

# 示例1
a = 1
b = 2
h = ""
h = a-b if a>b else a+b
print(h) #3

# 示例2
l1=[1,2,3,4,5]
l2=[item for item in l1 if item>3]
print(l2) # [4,5]

# 示例3
l=[x if x%3==0 else -x for x in range(1,10)]
print(l) #[-1, -2, 3, -4, -5, 6, -7, -8, 9]