Python:“或”的缩写

时间:2019-05-13 09:52:46

标签: python

是否可以用更短的时间写出来?

elif line.startswith('\tVLRLIST=') and (line.rstrip()[9:-1] == '27' or line.rstrip()[9:-1] == '28' or line.rstrip()[9:-1] == '29')

3 个答案:

答案 0 :(得分:4)

通常,您可以使用in关键字,

elif line.startswith('\tVLRLIST=') and line.rstrip()[9:-1] in ('27', '28', '29'):

对于此特定示例,所有这些都包含在一个范围内:

elif line.startswith('\tVLRLIST=') and (int(line.rstrip()[9:-1]) in range(27, 30):

答案 1 :(得分:3)

elif re.match(r'^\tVLRLIST=2[7-9]\s*$', line):

答案 2 :(得分:0)

我将使用其他方法并尝试命名这些名称,因为它更具可读性。

def prefix_is_correct(line):
    return line.startswith('\tVLRLIST=')

def is_valid(line):
    return prefix_is_correct(line) and line.rstrip()[9:-1] is in ['27', '28', '29']

.
.
.

elif is_valid(line):