python - 在Python中编写一系列if语句的有效方法?

标签 python algorithm if-statement switch-statement

我想重新编写一段代码,以使其更有效。我正在使用Python工作,并且没有像Java中那样的switch-break语句,但我觉得类似的结构可以工作。我特别谈论的代码是:

def update(arm, array1, array2, array3, array4, array5):
    # If the array is empty, add a zero
    if not array1:
        array1.append(0)
    if not array2:
        array2.append(0)
    if not array3:
        array3.append(0)
    if not array4:
        array4.append(0)
    if not array5:
        array5.append(0)

一般来说,有什么好方法可以避免在 Python 中编写一系列这样的 if 语句,同时还遍历并检查每个数组的特定函数?

最佳答案

您可以使用 *args 更改函数以接受任意数量的数组,然后使用 for 循环:

def update(arm, *arrays):
    for index, array in enumerate(arrays):
        if not array:
            array.append(0)
        if arm != index:
            array.append(array[-1])

不仅它更短,它还适用于传递给 update 的任意数量的数组,因此任何 update(arm, array1), update (arm, array1, array2) 等都可以。

如果由于某种原因您无法更改函数的签名,您仍然可以使用循环,但必须对循环迭代的数组进行硬编码。

def update(arm, array1, array2, array3, array4, array5,
           array6, array7, array8, array9, array10):
    for index, array in enumerate(array1, array2, array3, array4, array5,
                  array6, array7, array8, array9, array10):
        if not array:
            array.append(0)
        if arm != index:
            array.append(array[-1])

关于python - 在Python中编写一系列if语句的有效方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63904504/

相关文章:

python - 为所有 nosetests 测试执行一次设置和拆卸功能

java - 在平方根猜测公式中得到错误的值

c - 颠倒C语言中单词的顺序

Mysql Group BY 带 if 语句

python - 如何将列名应用于通过 DataFrame.value_counts() 创建的 Pandas 系列

python - 有没有办法从 Python 调用 C++ 函数?

使用nltk的python对称词矩阵

algorithm - 抛物线背包

excel - ElseIf 在不应该触发时触发

Excel 公式 IF 单元格编号为 'lower' 比 X、 'in between' X 和 Y 或 'higher' Y 则等于 A、B、C