使用 python 递归可以整除

exactly even divisible using python recurssion

def extractlyEvenlyDivisibleHelp(inputlst, number, outputlst = []):
    if number == 0:
        print([])
        return
    if inputlst[0] % number == 0:
        outputlst.append(inputlst[0])
        outputlst.sort()


    inputlst.remove(inputlst[0])

    if len(inputlst) == 0:
        print(outputlst)
    else:
        extractlyEvenlyDivisibleHelp(inputlst, number, outputlst)


def extractlyEvenlyDivisible(input, number):
    extractlyEvenlyDivisibleHelp(input, number, [])


extractlyEvenlyDivisible([1,2,3,4,5,6,7,8,9], 0)                                                
extractlyEvenlyDivisible([1,2,-3,4,5,-6,7,8,9,9,6], -3)
extractlyEvenlyDivisible([1,2,3,4,5,6,7,8,9,10, 10], 5)

输出:

[ ]

[-6, -3, 6, 9, 9]

[5, 10, 10]

预期输出:

[ ]

[-6, -3, 6, 9]

[5, 10]

我需要帮助,因为我只需要一个 9,我的意思是如果我输入几次相同的数字,它应该 return 一次。

您可以使用 set:

在传递给助手之前从输入列表中过滤掉重复项
def extractlyEvenlyDivisible(inputlst, number):
    extractlyEvenlyDivisibleHelp(list(set(inputlst)), number, [])

即使在函数中,像 input 一样重新定义 built-ins 也是不好的做法,我会将其更改为不同的变量名称