我想重新编写一段代码,以使其更有效。我正在使用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/