python - 涉及列表操作时递归思考

标签 python recursion python-3.4

from random import *

def Number(N):
    if N>0:
        return [ choice( [0,1] ) for i in range(N)]
    else:
        return ("Only Positive #'s!")

我如何递归地执行此操作?

比方说N=5 ,所以[0,1,2,3,4]将每个 # 替换为 01 。我似乎无法专心递归地进行这个列表操作。

最佳答案

这里有一个选项:

from random import choice  # don't use * imports

def Number_recursive(N):
    if N < 0:
        raise ValueError('N must be positive')
    if N == 0:
        return []
    return [choice((0, 1))] + Number_recursive(N-1)

注意引发错误而不是返回字符串;这更直接地告诉调用者出了问题。

关于python - 涉及列表操作时递归思考,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33050921/

相关文章:

python - 在计数器数组中使用 "+="导致意外行为,Python

java - 简单的递归作用相反

algorithm - 使用递归计算数组中对象的数量

python-2.7 - python2.7正常调用和subprocess调用时sys.path的区别

python - 标准 TensorFlow 格式的 Unicode

python - 如何将 Django 模型元选项应用于我未编写的模型?

python - Python 中的递归回溯——在秤上平衡重量

python-3.4 - 索引 PIL 图像

python - body = 'cmd=' + urllib_parse.quote_plus(unicode(verb).encode ('utf-8' )) 返回 "name ' unicode' 未定义”

Python 多重处理仅在首次运行后才快速