基于输入参数的函数替换
Substitution in function based on input parameter
假设我有多个名为 data_w1
、data_w2
、data_w3
、...、data_wn
的列表。我有一个以整数 band
作为输入的函数,我希望该函数只对相应的列表进行操作。
我熟悉字符串替换,但我在这里不处理字符串,那么我该怎么做呢?一些伪代码:
def my_function(band):
wband_new = []
for entry in data_wband:
# do stuff
wband_new.append( #new stuff )
return wband_new
但是上面的操作并没有像预期的那样工作,因为我得到的错误是没有定义任何带有 wband
的东西。我该怎么做?
假设您在函数之前的脚本中有 data
变量。您需要做的是将 data_wband
替换为 globals()['data_w'+str(band)]
:
data_w1 = [1,2,3]
data_w2 = [4,5,6]
def my_function(band):
wband_new = []
for entry in globals()['data_w'+str(band)]:
# do stuff
wband_new.append( #new stuff )
return wband_new
不太确定你在问什么,但如果你的意思是列表 1、2、...、n 然后是一个整数 i 并且你想获得第 i 个列表,只需列表使用整数 i 列出并索引外部列表(在您的情况下称为 band)。
l = [data_w1, data_w2, data_w3]
list_to_operate_on = l[band]
func(list_to_operate_on)
假设我有多个名为 data_w1
、data_w2
、data_w3
、...、data_wn
的列表。我有一个以整数 band
作为输入的函数,我希望该函数只对相应的列表进行操作。
我熟悉字符串替换,但我在这里不处理字符串,那么我该怎么做呢?一些伪代码:
def my_function(band):
wband_new = []
for entry in data_wband:
# do stuff
wband_new.append( #new stuff )
return wband_new
但是上面的操作并没有像预期的那样工作,因为我得到的错误是没有定义任何带有 wband
的东西。我该怎么做?
假设您在函数之前的脚本中有 data
变量。您需要做的是将 data_wband
替换为 globals()['data_w'+str(band)]
:
data_w1 = [1,2,3]
data_w2 = [4,5,6]
def my_function(band):
wband_new = []
for entry in globals()['data_w'+str(band)]:
# do stuff
wband_new.append( #new stuff )
return wband_new
不太确定你在问什么,但如果你的意思是列表 1、2、...、n 然后是一个整数 i 并且你想获得第 i 个列表,只需列表使用整数 i 列出并索引外部列表(在您的情况下称为 band)。
l = [data_w1, data_w2, data_w3]
list_to_operate_on = l[band]
func(list_to_operate_on)