Skip to main content
 首页 » 编程设计

python之从 q 个元素的列表中创建所有长度为 "n"的列表

2025年05月04日29sky-heaven

几天来,我一直在尝试寻找一种方法,从“q”个元素的列表中创建所有长度为“n”的列表。到目前为止,我已经能够让 sage 打印我想要获得的所有列表。然而,因为我需要这些列表用于另一个程序,所以我需要我的程序输出所有这些列表的列表,而不是仅仅让 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) 

请您参考如下方法:

这样的东西是你想要的吗?

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]]