我有一个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/

10-12 19:08