我有一个python列表,如下所示:
[['row_0','row_0_0','row_0_1'],['row_1','row_1_0','row_1_1']]
其中父列表中的每个列表都称为
row
column
.
['row_0','row_0_0','row_0_1']
是一排。
“row_0”、“row_0_0”和“row_0_1”是此行的列。
我想以这样的方式产生排列
-
总行数与原始父列表中的行数相同,即2。
-
每行的列的排列仍保留在该行内。例如:
['row_0','row_0_0','row_0_1']
可以有排列
['row_0','row_0_1','row_0_0']
,
['row_0','row_0_0','row_0_1']
-
每行的第一列在排列中从不改变。例如:“row_0”in和“row_1”始终保持其列表中的第一项。
到目前为止,我实现的是这样的:
perm_list = [['row_0','row_0_0','row_0_1'],['row_1','row_1_0','row_1_1']]
all_permutations = list(itertools.permutations(perm_list, len(perm_list))
print(all_permutations)
编辑
我要的输出是这样的:
[
[['row_0','row_0_0','row_0_1'],['row_1','row_1_0','row_1_1']],
[['row_0','row_0_1','row_0_0'],['row_1','row_1_1','row_1_0']],
[['row_1','row_1_0','row_1_1'],['row_0','row_0_0','row_0_1']],
[['row_1','row_1_1','row_1_0'],['row_0','row_0_1','row_0_0']],
]
a、 每个子列表中的第一项保持不变。
b、 每个子列表中的项都保留在该列表中。
c、 父列表和子列表的项目总数保持不变。