Py学习  »  Python

生成python列表的二维置换

sshussain270 • 4 年前 • 747 次点击  

我有一个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”是此行的列。

我想以这样的方式产生排列

  1. 总行数与原始父列表中的行数相同,即2。

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

  3. 每行的第一列在排列中从不改变。例如:“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、 父列表和子列表的项目总数保持不变。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/55375
 
747 次点击  
文章 [ 1 ]  |  最新文章 4 年前