Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将函数应用于多个变量_Python_Python 3.x_Functional Programming - Fatal编程技术网

Python 如何将函数应用于多个变量

Python 如何将函数应用于多个变量,python,python-3.x,functional-programming,Python,Python 3.x,Functional Programming,我需要检查多个变量,并对它们调用相同的函数 if isinstance(VarA,complex): VarA=SomeFunction(VarA) if isinstance(VarB,complex): VarB=SomeFunction(VarB) if isinstance(VarC,complex): VarC=SomeFunction(VarC) 是否可以以更短/更可读的方式编写此代码?一种解决方案是使用字典保存变量数量 然后迭代字典,如果满足条件,则修改值

我需要检查多个变量,并对它们调用相同的函数

if isinstance(VarA,complex):
    VarA=SomeFunction(VarA)
if isinstance(VarB,complex):
    VarB=SomeFunction(VarB)
if isinstance(VarC,complex):
    VarC=SomeFunction(VarC)

是否可以以更短/更可读的方式编写此代码?

一种解决方案是使用字典保存变量数量

然后迭代字典,如果满足条件,则修改值

vars = {'A': VarA, 'B': VarB, 'C': VarC}

for k, v in vars.items():
    if isinstance(v, complex):
        vars[k] = SomeFunction(vars[k])

一种解决方案是使用字典来保存变量的数量

然后迭代字典,如果满足条件,则修改值

vars = {'A': VarA, 'B': VarB, 'C': VarC}

for k, v in vars.items():
    if isinstance(v, complex):
        vars[k] = SomeFunction(vars[k])
您可以这样做:

a, b, c = (f(x) if isinstance(x, complex) else x for x in [a, b, c])
当有三个以上的变量时,情况会变得更糟,因此,如果您发现自己需要大量用于执行相同计算的变量,您应该考虑使用列表和循环:

List = [1, 2, 3 + 1j, 4, 5 - 2j]

processed = [f(x) if isinstance(x, complex) else x for x in List]
您可以这样做:

a, b, c = (f(x) if isinstance(x, complex) else x for x in [a, b, c])
当有三个以上的变量时,情况会变得更糟,因此,如果您发现自己需要大量用于执行相同计算的变量,您应该考虑使用列表和循环:

List = [1, 2, 3 + 1j, 4, 5 - 2j]

processed = [f(x) if isinstance(x, complex) else x for x in List]
你可以这样做

varA,varB,varC = (SomeFunction(var) if isinstance(var,complex) else var for var in [varA,varB,varC])
你可以这样做

varA,varB,varC = (SomeFunction(var) if isinstance(var,complex) else var for var in [varA,varB,varC])

对于少量的项目来说,这是一个很好的解决方案。对于少量的项目来说,这是一个很好的解决方案。我选择了另一个答案,因为我有少量的变量,但你的答案也很好。我选择了另一个答案,因为我有少量的变量,但是你的答案也是很好的。函数式语言可能不允许像
x=f(x)
这样的变量重新分配,所以你的程序可能是invalid@user633183我没有放函数式编程标签。只有Python.May函数式语言不允许像
x=f(x)
这样的变量重新分配,因此您的程序将是invalid@user633183我没有放函数式编程标签。只有Python。