列表列表而不是元组列表 - python

2024-03-28 12:02:50 发布

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

我正在做一个程序,它能给出所有值的组合,而不会重复。结果如何排序并不重要,只要[10,9,8]和[8,9,10]都不可能。到目前为止,我有一段代码,做我想要的,但我希望结果是在列表格式,而不是元组。它使用sage库中的unordered\u tuples函数,但只返回一个列表列表,如下所示:

>from sage.all import unordered_tuples
>tuples = unordered_tuples([10,9,8],2) 
>print tuples
[[8, 8], [8, 9], [8, 10], [9, 9], [9, 10], [10, 10]] 

以及:

from itertools import product
def combos():
    dicti = {} 
    index = 0 
    for entry in [1,0,1,0]: 
        dicIndex = str('0')+str(index) 
        print dicIndex 
        if entry == 0: dicti[dicIndex] = [[0]] 
        else: dicti[str('0')+str(index)] = unordered_tuples([10,9,8],entry) 
        index += 1 
    lis = ['00','01','02','03'] 
    value = dicti[lis[0]] 
    print dicti 
    for index in lis[1:]: 
        value = product(value, dicti[index]) 
        if index == lis[-1]: 
            print list(value) 
            print 

输出:

[((([8], [0]), [8]), [0]), ((([8], [0]), [9]), [0]), ((([8], [0]), [10]), [0]), ((([9], [0]), [8]), [0]), ((([9], [0]), [9]), [0]), ((([9], [0]), [10]), [0]), ((([10], [0]), [8]), [0]), ((([10], [0]), [9]), [0]), ((([10], [0]), [10]), [0])] 

想要:

[[[8], [0], [8], [0]], [[8], [0], [9], [0]], [[8], [0], [10], [0]], [[9], [0], [8], [0]], [[9], [0], [9], [0]], [[9], [0], [10], [0]], [[10], [0], [8], [0]], [[10], [0], [9], [0]], [[10], [0], [10], [0]]]

Tags: fromimport列表indexvalueproductprintentry
2条回答

我在从PostgreSQL数据库提取数据时遇到了类似的问题。这是我用的方法。你知道吗

def tupleToList(t):
    l = []
    for i in xrange(len(t)):
        l.append(list(t[i]))
        pass
    return l
    pass

这适用于二维列表。我正在把它植入你的5D列表中。你知道吗

output = [[[tuple[0]], [0], [tuple[1]], [0]] for tuple in unordered_tuples([10,9,8],2)]

相关问题 更多 >