python - 如何避免Python中的多个扁平if条件?

标签 python if-statement methods

考虑片段:

def check_conditions(range_of_numbers):
#method returns a list containing messages 
    list1 = []
    if condition1:
       list1.append("message1")
    if condition2:
       list1.append("message2")
    if condition3:
       list1.append("message3")
    try:
       for i in range_of_numbers:
           int(i)
    except ValueError:
        list1.append("message4")
    return message

只有满足条件时,我才希望在消息中包含一个列表。我不使用多个 if,因为它会增加代码复杂性,并且每次添加新参数时,我最终都会添加一个新的 if 条件。

最佳答案

例如,仅循环条件/消息对:

for condition,message in ((condition1,"message1"),(condition2,"message2"),(condition3,"message3")):
    if condition:
       list1.append(message)

如果条件是互斥的,请考虑在一个条件匹配时添加中断

列表理解版本(更“Pythonic”,但不可能在第一个条件匹配时中断):

list1 = [message for condition,message in ((condition1,"message1"),(condition2,"message2"),(condition3,"message3")) if condition]

关于python - 如何避免Python中的多个扁平if条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41501833/

相关文章:

python - 在 pandas 数据框中为变量填充零,无需按值分组

python - 我的 N-Queens 解决方案有什么问题?

delphi - 使用大 if 子句还是堆叠它们?

java - 当前涉及 String 的 If 语句

java - 从多个类访问方法

javascript - 对象函数没有方法(我不是 javascript 编码器)

python - Flask 同时验证装饰器多个字段

python - 将 DataArray 合并到 xarray 数据集中

javascript - "value == var"与 "var == value"

Java 程序无法正确添加金额