使用 map 和 modulo 查找数字中的数字乘积python

问题描述

需要编写一个函数,接收正整数“numbers”和位数“n”和 返回数字中数字的乘积。 使用模和映射函数并且没有循环。 这是我目前所拥有的:

def digits(n):
    n = n % 10
def calc_digits(number,n):
        list1 = list(map(digits(number),number))

但我得到“int”对象不可迭代

解决方法

在没有循环的情况下做到这一点的唯一方法是使用递归,这实际上只是伪装的循环:

def calc_digits( number ):
    if number:
        return number % 10 * calc_digits(number // 10)
    else:
        return 1

print( calc_digits( 12345) )

我确实想出了一个单线:

import functools
import operator
def calc_digits(digits):
    return functools.reduce(operator.mul,map(int,str(digits)))