获取列表中嵌套元素的所有排列-python 2

问题描述 投票:0回答:1

所以不是我麻烦的排列,而是结果列表不等于我开始使用的原始列表。清单是这个,

B=[[m, b], [c, g], [d, f]]

以及我用来获取所有排列的代码是这个,以及结果,

C=list(itr.permutations(B))
C
 [([m, b], [c, g], [d, f]),
 ([m, b], [d, f], [c, g]),
 ([c, g], [m, b], [d, f]),
 ([c, g], [d, f], [m, b]),
 ([d, f], [m, b], [c, g]),
 ([d, f], [c, g], [m, b])]

有没有办法在括号中而不是内部列表,而是在方括号中,因为到目前为止,C [0]与B不同,实际上它们应该相等。

C[0]==B
False 

我已经将字母(m,b,d等)定义为sympy中的符号,而不是字符串。任何建议表示赞赏。

python permutation sympy
1个回答
0
投票

您可以使用map()将元组变成列表:

map()

0
投票

只需使用>>> import itertools as itr >>> B=[[m, b], [c, g], [d, f]] >>> map(list, itr.permutations(B)) [[['m', 'b'], ['c', 'g'], ['d', 'f']], [['m', 'b'], ['d', 'f'], ['c', 'g']], [['c', 'g'], ['m', 'b'], ['d', 'f']], [['c', 'g'], ['d', 'f'], ['m', 'b']], [['d', 'f'], ['m', 'b'], ['c', 'g']], [['d', 'f'], ['c', 'g'], ['m', 'b']]]

C[0][0] == B[0]
© www.soinside.com 2019 - 2024. All rights reserved.