【发布时间】:2020-04-19 19:52:18
【问题描述】:
我希望问题的标题很清楚,如果没有,这里有更多细节。
lis_a, lis_b, lis_c = ['A', 'C'], ['T', 'G'], ['G', 'T']
# I am trying make combination of these list elements
all_possible_states = [[x, y, z] for x in lis_a for y in lis_b for z in lis_c]
print('all possible states')
输出为:
all possible states
[['A', 'T', 'G'], ['A', 'T', 'T'], ['A', 'G', 'G'], ['A', 'G', 'T'], ['C', 'T', 'G'], ['C', 'T', 'T'], ['C', 'G', 'G'], ['C', 'G', 'T']]
我实际上是在尝试以一种使两个互补组合也组合在一起的方式进行组合。 即,如果从 lis_a 中选择了“A”,而从 lis_b 中选择了“T”,那么 lis_a 中的“C”和 lis_b 中的“G”将是互补的。
我实际上希望所有可能的状态都采用以下格式,其中两个互补状态嵌套在一起:
[[['A', 'T', 'G'], ['C', 'G', 'T']], [['A', 'T', 'T'], ['C', 'G', 'G']], [['A', 'G', 'G'], [['A', 'G', 'T'], ['C', 'T', 'G']]]
Or,
[(['A', 'T', 'G'], ['C', 'G', 'T']), (['A', 'T', 'T'], ['C', 'G', 'G']), (['A', 'G', 'G'], ['C', 'T', 'T']), (['A', 'G', 'T'], ['C', 'T', 'G'])]
【问题讨论】:
-
在我看来,你想要的只是
list(itertools.product(lis_a, lis_b, lis_c)),除非我错过了什么 -
您是在寻找示例输出中显示的所有可能组合,还是您所说的互补组合?
-
@DeepSpace:互补序列(或状态)需要嵌套在一起。这是我面临的主要问题。
-
@GrandPhuba:我想要所有可能的组合(这已经是列表理解),但在所有可能的组合中,我还希望互补状态嵌套在一起。
标签: python list list-comprehension combinations permutation