Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x python中的无限循环递归_Python 3.x_Dictionary_Recursion - Fatal编程技术网

Python 3.x python中的无限循环递归

Python 3.x python中的无限循环递归,python-3.x,dictionary,recursion,Python 3.x,Dictionary,Recursion,我正在研究python中的递归,给学生们指定了难度级别,每个难度都有不同的点。例如,如果给学生分配难度为[4,4,6,6]的作业,他们分别得到[20,20,30,30]的分数。现在,我需要计算这个类将获得的总点数。我使用的是字典,当我输入较小的输入时,我的过程是正确的,但当涉及较大的输入时,我得到一个错误,说程序太长而无法执行,或者我的代码用于无限循环。我使用lambda在列表中循环,并确保它只保留那些为函数返回true的元素 import numpy as np class Solution

我正在研究python中的递归,给学生们指定了难度级别,每个难度都有不同的点。例如,如果给学生分配难度为[4,4,6,6]的作业,他们分别得到[20,20,30,30]的分数。现在,我需要计算这个类将获得的总点数。我使用的是字典,当我输入较小的输入时,我的过程是正确的,但当涉及较大的输入时,我得到一个错误,说程序太长而无法执行,或者我的代码用于无限循环。我使用lambda在列表中循环,并确保它只保留那些为函数返回true的元素

import numpy as np

class Solution:
    def maxAssignmentPoints(self, difficulty, points, student) -> int:
        output = 0

   # assuming there is a 1:1 mapping between difficulty and points
        lookup = dict(zip(difficulty, points))

    # iterate through each student to get the maximum difficulty
        for s in student:
        # obtain max difficulty
            max_diff = max(list(filter(lambda x: x <= s, difficulty)))
            output += lookup[max_diff]
        return output


array1 = [int(x) for x in input().split(",")]
array2 = [int(x) for x in input().split(",")]
array3 = [int(x) for x in input().split(",")]

s= Solution()
print(s.maxAssignmentPoints(np.asarray(array1), np.asarray(array2), np.asarray(array3)))
将numpy导入为np
类解决方案:
def maxAssignmentPoints(自我、难度、分数、学生)->int:
输出=0
#假设难度和分数之间有1:1的对应关系
查找=dict(zip(难度、分数))
#迭代每个学生以获得最大难度
对于学生中的学生:
#获得最大难度

max_diff=max(列表(过滤器(lambda x:x为什么要转换为
numpy
数组而不使用任何
numpy
特性?这样做,您最多可以节省一点内存,但会在Python级别类型和
numpy
包装的C级别类型之间增加大量开销转换。应该可以在
numpy
功能的工作量不到10%,例如
max_diff
可以计算为
max_diff=demobility[难度,也不确定这里的递归适用于哪里;此代码中没有递归。