使用 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 也是不好的做法,我会将其更改为不同的变量名称
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 也是不好的做法,我会将其更改为不同的变量名称