我有一个if条件返回True,像这样:
if (('pro' in application_id) and (main_service_id != 102)) or (('pro' not in application_id) and (main_service_id == 102)):
return True
application_id
可以是任何字符串,而main_service_id
是整数。我的问题是:有没有办法使
if
变短同时保持相同的逻辑? 最佳答案
是的,可以使用运算符XOR(operator.xor):
让我们假设:
# A: 'pro' in application_id
# B: main_service_id == 102
您拥有的是:
# (A.(not B)) + (B.(not A))
# Equivalent to A XOR B
if (('pro' in application_id) and (main_service_id != 102)) or (('pro' not in application_id) and (main_service_id == 102)):
return True
将会:
if ('pro' in application_id)^(main_service_id == 102):
return True
甚至:
if ('pro' in application_id)!=(main_service_id == 102):
return True
关于python - 比较具有恒定整数的字符串和整数中的字符串的算法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57337359/