Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从具有列表值的字典中检索给定键序列的所有可能组合_Python_Biopython - Fatal编程技术网

Python 如何从具有列表值的字典中检索给定键序列的所有可能组合

Python 如何从具有列表值的字典中检索给定键序列的所有可能组合,python,biopython,Python,Biopython,例如,我有这本字典 d={'M':['ATG'],'D':['GAC','GAT'],'E':['GAA','GAG']} 给定一个键序列,我想要的输出是一个包含所有可能序列的列表。(也可以是字符串,其中所有可能的序列都在单独的行中“\n”) 因此,输出应如下所示: ['ATGGACGAA','ATGGACGAG','ATGGATGAA','ATGGATGAG'] 到目前为止,我尝试了以下内容,但这当然不是我想要的: seq_trans = '' for aa in sequence:

例如,我有这本字典

d={'M':['ATG'],'D':['GAC','GAT'],'E':['GAA','GAG']}
给定一个键序列,我想要的输出是一个包含所有可能序列的列表。(也可以是字符串,其中所有可能的序列都在单独的行中“\n”)

因此,输出应如下所示:

['ATGGACGAA','ATGGACGAG','ATGGATGAA','ATGGATGAG']
到目前为止,我尝试了以下内容,但这当然不是我想要的:

seq_trans = ''

for aa in sequence:
  for k, v in d.iteritems():
    if k == aa:
      for item in v:
        seq_trans= seq_trans + item
print seq_trans
我从“MDE”中得到的是:

您可以在这里使用,它返回输入iterables的笛卡尔乘积

In [78]: seq="MED"

In [79]: ["".join(x) for x in product(*(d[y] for y in seq))]
Out[79]: ['ATGGAAGAC', 'ATGGAAGAT', 'ATGGAGGAC', 'ATGGAGGAT']

MED似乎与您的输出不匹配;你是说MDE?是的,你是对的DSM。。。我刚刚改变了。。。是的,订单很重要。打败我:我在写
[''.join(p)代表产品中的p(*(d[c]代表顺序中的c))]
。当问题涉及“所有可能”或“所有可能”时,您知道将涉及
itertools
。^)我也在写同样的东西,除了生成器表达式部分。正如他们所说的,“一种显而易见的方法”<代码>itertools:让python程序员的生活变得简单,因为py2.3。嘿,如果我从txt文件中读取一个序列呢??我尝试了您的答案,但出现了一个错误:回溯(最近一次调用):文件“”,第2行,在文件“”中,第2行,在KeyError:“\n”
'ATGGACGATGAAGAG'
In [78]: seq="MED"

In [79]: ["".join(x) for x in product(*(d[y] for y in seq))]
Out[79]: ['ATGGAAGAC', 'ATGGAAGAT', 'ATGGAGGAC', 'ATGGAGGAT']