我有一个名为possibilities
的字典,其中键是一个索引,该键的值是列表中该索引上的值。见下表:
possibilities = {0: [None, 'KLAX_1', 'KDEN_1'],
1: [None, 'KLAX_1', 'KDEN_1'],
2: [None, 'KLAX_1', 'KLAS_1', 'KDEN_1'],
3: [None, 'KLAX_1', 'KLAS_1', 'KPHX_1', 'KDEN_1', 'KDFW_1'],
4: [None, 'KPHX_1', 'KDEN_2', 'KDFW_2'],
5: [None, 'KDEN_2', 'KDFW_2'],
6: [None, 'KDEN_2']}
我想把这个列表的每个排列保存在另一个名为permutations_list
的列表中。我的目标是从possibilities dict创建这个排列列表。目前我有一个巨大的嵌套for循环来构建这个列表(见下文)。但是我想要一个函数,它接受possibilities_dict
并自动生成我的列表。我认为递归函数将允许我不指定所需的索引数。你知道吗
for index_0 in possibilities[0]:
for index_1 in possibilities[1]:
for index_2 in possibilities[2]:
for index_3 in possibilities[3]:
for index_4 in possibilities[4]:
for index_5 in possibilities[5]:
for index_6 in possibilities[6]:
lst = [index_0,index_1,index_2,index_3,index_4,index_5,
index_6]
permutations_list.append(lst)
上面代码的结果是一个长度为5184
的列表permutations_list
。该列表中的每一项都是一个包含所有值的特定排列的列表。这不像使用itertools.permutations
那么简单,因为只有特定的值可以位于列表的特定索引中。有人能帮忙提供一个递归函数来实现这一点吗?谢谢。你知道吗
经过一些编码,我想出了一个递归的解决方案。您可以使用
itertools.product
或下面的函数。你知道吗相关问题 更多 >
编程相关推荐