使用for循环自动化函数

时间:2016-07-14 14:41:50

标签: python list overlap

我正在尝试使用此代码来计算特定深度处的重叠分数,以便在不同深度使用。

scale_x_discrete

但是,当我尝试运行此代码时出现错误:

def score(list1, list2, depth):
    len_list = len(list1)

    frac = numpy.ceil(depth * len_list)

    frac = int(frac)
    s = slice(0,frac)

    list1 = list1[s]
    list2 = list2[s]

    return len(set(list1)&set(list2)) / float(len(set(list1) | set(list2))) 


if __name__ == "__main__":

    list1 = [2,4,6,8,10]
    list2 = [1,2,3,4,5]

    a = [numpy.arange(.01,1.01,.01)]
    for i in a:
        print(score(list1, list2, i))

这意味着变量深度实际上是变量a的列表(即[0.01,0.02..etc])。

我如何纠正这个问题,以便函数一次只接受参数'depth'的一个参数而不是整个列表?

由于

1 个答案:

答案 0 :(得分:2)

凯文在评论中说,您的问题是您正在创建一个列表,其中包含代码a = [numpy.arange(.01,1.01,.01)]中的另一个列表。只需删除额外的括号即可。