gpt4 book ai didi

python - 如何实现一个函数来覆盖单个值和多个值

转载 作者:太空狗 更新时间:2023-10-30 01:39:19 24 4
gpt4 key购买 nike

假设您有这样的值:

n = 5

和一个返回它的阶乘的函数,像这样:

factorial(5)

如何处理多个值:

nums = [1,2,3,4,5]
factorial (nums)

所以它以列表的形式返回所有这些值的阶乘?

在不编写 2 个方法的情况下,处理这个问题的最干净的方法是什么? Python 有处理这些情况的好方法吗?

最佳答案

def Factorial(arg):
try:
it = iter(arg)
except TypeError:
pass
else:
return [Factorial(x) for x in it]
return math.factorial(arg)

如果它是可迭代的,递归地应用。否则,正常进行。

或者,您可以将最后一个 return 移动到 except block 中。

如果您确定 Factorial 的主体永远不会引发 TypeError,则可以将其简化为:

def Factorial(arg):
try:
return [Factorial(x) for x in arg]
except TypeError:
return math.factorial(arg)

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

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com