代码之家  ›  专栏  ›  技术社区  ›  Dharmik Patel

使用python递归完全可以整除

  •  0
  • Dharmik Patel  · 技术社区  · 3 年前
      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, [])
    

    可抽取均匀整除([1,2,3,4,5,6,7,8,9],0)

    可抽取均匀整除([1,2,-3,4,5,-6,7,8,9,9,6],-3)

    可抽取均匀整除([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,我的意思是,如果我输入同一个数字几次,它应该只返回一次

    1 回复  |  直到 3 年前
        1
  •  0
  •   Jeremy    3 年前

    您可以先从输入列表中筛选出重复项,然后再使用 set :

    def extractlyEvenlyDivisible(inputlst, number):
        extractlyEvenlyDivisibleHelp(list(set(inputlst)), number, [])
    

    此外,像这样重新定义内置项也是不好的做法 input 即使在函数中,我也会将其更改为不同的变量名