Здравствуйте, подскажите пожалуйста:
Как создать k - мерный список, например со всеми нулями по значению k
Например для k = 1, список:{0, 0}
для k = 2, список:{{0, 0}, {0, 0}} и тд
подскажите пожалуйста хотя бы идею, спасибо заранне.
def ml(n):
if n==1:
return [0,0]
else:
return [ml(n-1),ml(n-1)]
a = [[0,0] for i in xrange(k)]
terabaytЧто что. Бесконечная рекурсия и падение. Адекватная реакция на некорректный аргумент. Но допустимость аргументов надо проверять снаружи а не внутри рекурсии.
а что если n <= 0?
>>> [[0,0] for i in xrange(3)] [[0, 0], [0, 0], [0, 0]]
[[[0, 0], [0, 0]], [[0, 0], [0, 0]]]
>>> import numpy as np >>> np.zeros((2,)*3,dtype='i').tolist() [[[0, 0], [0, 0]], [[0, 0], [0, 0]]]
from itertools import product
def get_seq(n): values_lst = iter(map(''.join, product(*[('0', '1')]*n))) for i in xrange(n, 0, -1): lst1, lst2 = [], [] for j in xrange(2**i/2): lst1.append(next(values_lst)) lst2.append(next(values_lst)) values_lst = iter(zip(lst1, lst2)) return list(values_lst)[0]
>>> get_seq(4)[0][0][1][0] '0010'