首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >给定列表的大小,如何将其阶乘作为列表返回?

给定列表的大小,如何将其阶乘作为列表返回?
EN

Stack Overflow用户
提问于 2017-03-26 00:52:09
回答 1查看 121关注 0票数 0

我试图编写一个函数,它接受一个列表的大小作为参数,并返回一个新的列表,其中的数字基本上是列表大小的阶乘。但是,我不能使用阶乘()函数,因为它抛出了“未定义”错误。

输入/输出实例:

puzzle=[1,2,2,2],大小=2乘2 (2),所有可能的new_list=1,2数 puzzle=[1,2,3],大小=3乘3 (3),所有可能的new_list=1,2,3数

我的当前代码(不起作用):

代码语言:javascript
复制
def get_valid_numbers(size):
    num=size
    valid_list=[]
    return valid_list.append(num*factorial(num-1))

我知道这是不对的,但我不知道怎么解决。

EN

回答 1

Stack Overflow用户

发布于 2018-03-03 11:03:43

这就是你要找的吗?

代码语言:javascript
复制
def get_valid_num(size):
    valid_list = list(range(1, size + 1))
    return valid_list
print("All numbers possible: ", get_valid_num(5))

请注意,这段代码并不输出阶乘,而是以size参数为界的连续整数列表(+ 1,因为range()函数的结束值不包括在内)。

但是,如果您确实希望创建列表并使用n大小的阶乘填充它们,则可能需要按以下方式实现

代码语言:javascript
复制
def factorial(size):
    if size <= 2:
        return size
    else:
        size = size * factorial(size - 1)
    return size

# This time you build a list of 120 elements (5! = 120)
def get_valid_num(size):
    valid_list = list(range(1, factorial(size) + 1))
    return valid_list

print("All numbers possible: ", get_valid_num(5))

最后,您可能希望为每个元素创建一个具有计算阶乘的列表。

代码语言:javascript
复制
def factorial(size):
    if size <= 2:
        return size
    else:
        size = size * factorial(size - 1)
    return size

# Populate the list with the value of each factored element
def get_valid_num(size):
    valid_list = list(range(1, size + 1))
    factorials = [factorial(item) for item in valid_list]
    return factorials

print("All numbers possible: ", get_valid_num(5))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43023730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档