假设您有一个像这样的值:

n = 5

和一个返回其阶乘的函数,如下所示:
factorial(5)

你如何处理多个值:
nums = [1,2,3,4,5]
factorial (nums)

所以它将所有这些值的阶乘作为列表返回?

在不编写 2 种方法的情况下,处理此问题的最简洁方法是什么? Python 是否有处理这些情况的好方法?

最佳答案

有时会这样做。

def factorial( *args ):
    def fact( n ):
        if n == 0: return 1
        return n*fact(n-1)
    return [ fact(a) for a in args ]

它提供了一个几乎神奇的函数,可以处理简单的值和序列。
>>> factorial(5)
[120]
>>> factorial( 5, 6, 7 )
[120, 720, 5040]
>>> factorial( *[5, 6, 7] )
[120, 720, 5040]

关于python - 如何实现一个函数来覆盖单个和多个值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/628162/

10-12 16:33