【问题标题】:How to write multiple Boolean expression in one line?如何在一行中编写多个布尔表达式?
【发布时间】:2021-02-21 11:02:56
【问题描述】:

我能否以更好的方式编写以下行而不一遍又一遍地重复 (c_numbers_list[:2]) 短语?

    if c_numbers_list[:2] == [5,1] or c_numbers_list[:2] == [5,2] or c_numbers_list[:2] == [5,3] or 
    c_numbers_list[:2] == [5,4] or c_numbers_list[:2] == [5,5]:

【问题讨论】:

  • if c_numbers_list[:2] in [[5,1], [5,2], .....[5,5]]一样使用if A in [B,C,D] ?

标签: python if-statement boolean


【解决方案1】:
ans = False
for i in range(1,6):
    if c_numbers_list[:2] == [5,i]:
        ans = True
        break

【讨论】:

    【解决方案2】:

    如果您知道您的列表至少有 2 个元素,您可以这样做:

    if c_numbers_list[0]==5 and c_numbers_list[1] in range(1,6):
        ...
    

    如果列表可以更短:

    if len(c_numbers_list)>1 and c_numbers_list[0]==5 and c_numbers_list[1] in range(1,6):
        ...
    

    如果您不想对比较值进行硬编码:

    eligible = [ [5,i] for i in range(1,6) ] # one time setup
    
    if c_numbers_list[:2] in eligible:
        ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多