【发布时间】:2017-10-05 03:49:26
【问题描述】:
我有 2 个 python 列表,我想使用不同的函数(TP、TN、FP、FN)计算 4 个不同的值。如果我可以在外部嵌套函数中定义参数而不为每个函数定义参数,因为所有 4 个函数的参数都相同,那就更好了。 我已经实现了一个函数,但它只给出了 TP 函数输出。你能请有人帮我在这里找到问题吗
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
【问题讨论】:
-
提示:
return结束函数。在您的第一个return TP之后不会执行任何操作。 -
调用evaluation(list1,list2)时你期望看到什么?能举个例子吗?
-
你为什么在这里使用嵌套函数?这假设是一个功能工厂吗?但是,您正在创建
Jac_test_list和Simmilar_list的闭包,据我所知,它们是非本地的。 -
@Allen 下面是预期的输出 TP 计数:12,TN 计数:16,FP 计数:1,FN 计数:6,换句话说,我想打印 Print() 中的所有内容。我必须运行几次。所以我喜欢只在一个地方定义参数,而不是在所有 4 个函数中定义它们
-
你的输入列表list1和list2是什么?能举个例子吗?
标签: python function nested-function