如何更优雅地重写代码

Mat*_*son 0 python

下面的代码从文件中读取行,然后执行自定义函数(My_Function)并将值返回给变量(例如condition_A)

  for line in input_file:
     if condition_A:
         condition_A = My_Function(A_tuple[0], B_tuple[0])

    if condition_B:
        condition_B = My_Function(A_tuple[1], B_tuple[1])

    if condition_C:
        condition_C = My_Function(A_tuple[2], B_tuple[2])

    if condition_D:
        condition_D = My_Function(A_tuple[3], B_tuple[3])

    if condition_E:
        condition_E = My_Function(A_tuple[4], B_tuple[4])

...
Run Code Online (Sandbox Code Playgroud)

我的问题是:可以将代码修改为更优雅的版本吗?毕竟,许多代码是相似的(我不想定义另一个函数来简化它,因为在定义新函数后代码仍然相似).谢谢.

unu*_*tbu 8

而不是有5个变量condition_*,使用列表,conditions:

conditions=[1]*5 # initialize conditions as you wish
for line in input_file:
    for i,condition in enumerate(conditions):
        if condition:
            conditions[i]=My_Function(A_tuple[i],B_tuple[i])
Run Code Online (Sandbox Code Playgroud)