相同参数的Python嵌套函数
我有两个python列表,我想用不同的函数stp、TN、FP、FN计算4个不同的值。如果我可以在外部嵌套函数中定义参数,而不为每个函数定义参数,这会更好,因为所有4个函数的参数都相同。 我已经实现了一个函数,但它只给出了TP函数的输出。你能找个人帮我找到这个问题吗相同参数的Python嵌套函数,python,function,nested-function,Python,Function,Nested Function,我有两个python列表,我想用不同的函数stp、TN、FP、FN计算4个不同的值。如果我可以在外部嵌套函数中定义参数,而不为每个函数定义参数,这会更好,因为所有4个函数的参数都相同。 我已经实现了一个函数,但它只给出了TP函数的输出。你能找个人帮我找到这个问题吗 def evaluation(list1,list2): def TP(): count1 = 0 for i in range(0,35): if Jac_te
def evaluation(list1,list2):
def TP():
count1 = 0
for i in range(0,35):
if Jac_test_list[i].strip()==Simmilar_list[i].strip()=='True':
count1+=1
#return count
print ('TP count :' + str( count1))
return TP
def TN():
count2 = 0
for i in range(0,35):
if Jac_test_list[i].strip()==Simmilar_list[i].strip()=='False':
count2+=1
#return count
print ('TN count :' + str( count2))
return TN
def FP():
count3 = 0
for i in range(0,35):
if (Jac_test_list[i].strip()=='True') & (Simmilar_list[i].strip()=='False'):
count3+=1
#return count
print ('FP count :' + str( count3))
return FP
def FN():
count4 = 0
for i in range(0,35):
if (Jac_test_list[i].strip()=='False') & (Simmilar_list[i].strip()=='True'):
count4+=1
#return count
print ('FN count :' + str( count4))
return FN
我不得不说,这不是在函数之间共享参数的最佳方式,但仅仅是为了修复代码,下面可能是您想要的
def evaluation(Jac_test_list,Simmilar_list):
def TP():
count1 = 0
for i in range(0,35):
if Jac_test_list[i].strip()==Simmilar_list[i].strip()=='True':
count1+=1
#return count
print ('TP count :' + str( count1))
def TN():
count2 = 0
for i in range(0,35):
if Jac_test_list[i].strip()==Simmilar_list[i].strip()=='False':
count2+=1
#return count
print ('TN count :' + str( count2))
def FP():
count3 = 0
for i in range(0,35):
if (Jac_test_list[i].strip()=='True') & (Simmilar_list[i].strip()=='False'):
count3+=1
#return count
print ('FP count :' + str( count3))
def FN():
count4 = 0
for i in range(0,35):
if (Jac_test_list[i].strip()=='False') & (Simmilar_list[i].strip()=='True'):
count4+=1
#return count
print ('FN count :' + str( count4))
TP()
TN()
FP()
FN()
提示:return结束函数。第一次返回TP后不会执行任何操作。调用evaluationlist1和list2时,您希望看到什么?你能举个例子吗?为什么在这里使用嵌套函数?这是一个函数工厂吗?但是,您正在Jac_test_list和Simmilar_list上创建闭包,据我所知,这是非本地的。@Allen下面是预期的输出TP count:12、TN count:16、FP count:1、FN count:6,换句话说,我要打印所有正在打印的内容。我得跑几次。所以我喜欢只在一个地方定义参数,而不是在所有4个函数中定义它们。您的输入列表列表列表1和列表2是什么?你能举个例子吗?非常感谢,这很有效。如果你不介意的话,你能告诉我分享此类事件参数的最佳方式吗