from random import choice
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)
我如何在此列表中添加其他列表
目前它输出让当然随机地将N等于4 [1,0,0,1]
。
但是我想让它读出一个包含N
个列表的列表。目标:
[ [0,1,1,0],[1,0,0,1],[1,0,1,0],[0,0,0,1] ]
答案 0 :(得分:2)
您可以使用列表推导来创建子列表而不是[choice((0, 1))]
。示例 -
from random import choice
def Number_recursive(N,initialN=None):
initialN = initialN or N
if N < 0:
raise ValueError('N must be positive')
if N == 0:
return []
return [[choice((0, 1)) for _ in range(initialN)]] + Number_recursive(N-1,initialN)
演示 -
>>> from random import choice
>>>
>>> def Number_recursive(N,M=None):
... M = M or N
... if N < 0:
... raise ValueError('N must be positive')
... if N == 0:
... return []
... return [[choice((0, 1)) for _ in range(M)]] + Number_recursive(N-1,M)
...
>>> Number_recursive(4)
[[0, 0, 1, 0], [0, 1, 1, 1], [1, 1, 0, 0], [1, 0, 1, 0]]
答案 1 :(得分:1)
你可以尝试这样的事情,希望这有帮助。
from random import choice
N = 4
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)
result = []
for i in range(0, N):
result.append(Number_recursive(N))
print result