更有效地完成长 if-elif 语句

问题描述 投票:0回答:1

作为上下文,我从 html 表单中获取价格值。 例如:0 - 任何价格,1 = 0 美元到 100 美元,2 = 100 美元到 200 美元等。

肯定有一种更Pythonic或更有效的方法来编写我现在默认使用的如此乏味的语句:

  if price_sel == 0:
        min = False
        max = False
    elif price_sel == 1:
        max = 100
    elif price_sel == 2:
        min = 100
        max = 200
    elif price_sel == 3:
etc. etc.

感谢您的任何意见。 :)

我尝试在网上搜索,但没有找到任何相关回复。

python if-statement
1个回答
0
投票

price_ranges = {
    0: (None, None),  # any price
    1: (0, 100),
    2: (100, 200),
    # Add more ranges as needed
}

min_price, max_price = price_ranges.get(price_sel, (None, None))

在此方法中:

price_ranges 是一个字典,其中键是price_sel 值,值是包含每个范围的最低和最高价格的元组。 Price_ranges.get(price_sel, (None, None)) 检索给定 Price_sel 的相应 (min, max) 值元组。如果在字典中找不到price_sel,则默认为(None,None)。 然后,您可以根据需要在代码中使用 min_price 和 max_price 变量。 这种方式更加简洁,更容易维护,并且避免了重复的条件语句。

© www.soinside.com 2019 - 2024. All rights reserved.