如何将用户输入与数组进行比较以提高效率

How to compare user input to an array to increase efficency

我正在尝试提高某些工作代码的效率或减少所需的循环次数。有没有办法使用数组或列表来验证用户输入?

到目前为止,我已经设法让代码与 for-else-loop 一起工作,但它看起来很麻烦而且不是很 pythonic。我找不到任何涉及将数组与用户输入进行比较的答案。该代码应检查用户输入是否与有效骰子的正确面数匹配。 (所以他们不能放 3 面之类的东西)

def check(die):
    if die == 100 or die == 20 or die == 12 or die == 10 or die == 8 or die == 6 or die == 4:
        legal = True
    else:
        legal = False
    return legal

您可以将所有这些常量值插入一个数组,然后遍历该数组以检查这些值是否合法

试试这个:

def check(die,List_Of_Values):
    if die in List_Of_Values:
        legal = True
    else:
        legal = False
    return legal
List_Of_Values=[100,20,12,10,8,6,4]

是的,但如果您这样做,您可以进一步简化它:

# Declare as global variable somewhere...
List_Of_Values=[100,20,12,10,8,6,4]


# Sometime later
input = get_input()
if input in List_Of_Values:
  print("Legal")
else:
  print("Not legal")

不需要额外的功能。