Python 中函数参数的迭代操作

问题描述 投票:0回答:1

我有一个接受 7 个输入的函数,每个输入都可以是标量(浮点)、列表或 numpy 数组。为了后续的计算,我想将它们全部转换为numpy数组。

import numpy as np
def my_function(period,mw,rjb,soft_site=0,stiff_site=0,fault_normal=0,fault_reverse=0):
period = np.array(period)
mw = np.array(mw)
rjb = np.array(rjb)
soft_site = np.array(soft_site)
stiff_site = np.array(stiff_site)
fault_normal = np.array(fault_normal)
fault_reverse = np.array(fault_reverse)

我就是这么做的。有没有办法循环遍历参数而不是重复调用 np.array() 方法,因为这也会使其与可变数量的参数兼容。

python function loops arguments
1个回答
0
投票

使用 kwargs 选项并循环遍历关键字,从而生成包含数组的字典。

def my_function2(period, mw, rjb, **kwargs):
    period = np.array(period)
    mw = np.array(mw)
    rjb = np.array(rjb)
    for k in kwargs:
        kwargs[k] = np.array(kwargs[k])
    return kwargs

x = my_function2(2,[1,2,3],'1234', soft_site=0,stiff_site=0,fault_normal=0,fault_reverse=0)

print(x)

结果:

{'soft_site': array(0), 'stiff_site': array(0), 'fault_normal': array(0), 'fault_reverse': array(0)}
© www.soinside.com 2019 - 2024. All rights reserved.