从q元素列表创建长度为“n”的所有列表

2024-10-01 13:37:03 发布

您现在位置:Python中文网/ 问答频道 /正文

几天来,我一直试图找到一种方法,从一个“q”元素列表中创建所有长度为“n”的列表。到目前为止,我已经能够让萨奇打印所有的名单,我期待获得。但是,由于我需要其他程序的这些列表,我需要我的程序输出所有这些列表的列表,而不是让Sage打印列表。到目前为止我得到的是:

def XUniv(q,x,n):
    """
    :param q: is your alphabet size
    :param x: is a zero vector of any length
    :param n: is len(x)-1
    """
    for i in range(q):
        x[n]=i
        if n==0:
            print x
        else:
            XUniv(q,x,n-1)

Tags: 方法程序元素列表yoursizeparamis
2条回答

你想要这样的东西吗?你知道吗

sage: q=1
sage: n=3
sage: L = IntegerListsLex(min_part=0, max_part=q, length=n)
sage: list(L)
[[1, 1, 1],
 [1, 1, 0],
 [1, 0, 1],
 [1, 0, 0],
 [0, 1, 1],
 [0, 1, 0],
 [0, 0, 1],
 [0, 0, 0]]

没有圣人:

import itertools
def all_lists_from_q_elements(q, n):
    all_lists_iter = itertools.product(tuple(range(q)), repeat=n)
    return [list(l) for l in all_lists_iter]

相关问题 更多 >