我想通过将字典中的值除以一个列表来计算它们的概率。 这是格言:
PPM = {'A': [1, 4, 1, 0, 0, 3, 4, 1, 1, 3, 0, 2, 0], 'T': [3, 0, 0, 0, 6, 1, 0, 2, 3, 3, 2, 3, 0],
'C': [1, 2, 1, 0, 0, 2, 1, 0, 1, 0, 4, 0, 4], 'G': [1, 0, 4, 6, 0, 0, 1, 3, 1, 0, 0, 1, 2]}
我想把每个数字除以这个列表的长度:
sequences = ["GAGGTAAACTCTG", "TCCGTAAGTTTTC", "CAGGTTGGAACTC", "ACAGTCAGTTCAC",
"TAGGTCATTACAG", "TAGGTACTGATGC"]
我试着做一个类似这样的for循环:
PPM = {}
for k in PFM:
PPM[k]= [((x[i]/len(sequences)) == k for x in PFM) for i in range(len(PFM))]
但结果是:
{'A': [<generator object <listcomp>.<genexpr> at 0x0000022407181580>, <generator object <listcomp>.<genexpr> at 0x0000022407181820>, <generator object <listcomp>.<genexpr> at 0x0000022407181F90>, <generator object <listcomp>.<genexpr> at 0x0000022407181970>], 'T': [<generator object <listcomp>.<genexpr> at 0x0000022407181F20>, <generator object <listcomp>.<genexpr> at 0x00000224071819E0>, <generator object <listcomp>.<genexpr> at 0x00000224071816D0>, <generator object <listcomp>.<genexpr> at 0x00000224071817B0>], 'G': [<generator object <listcomp>.<genexpr> at 0x00000224060FEF20>, <generator object <listcomp>.<genexpr> at 0x00000224060FEB30>, <generator object <listcomp>.<genexpr> at 0x00000224060FE9E0>, <generator object <listcomp>.<genexpr> at 0x00000224060FEF90>], 'C': [<generator object <listcomp>.<genexpr> at 0x00000224060FE820>, <generator object <listcomp>.<genexpr> at 0x000002240717C190>, <generator object <listcomp>.<genexpr> at 0x000002240717CE40>, <generator object <listcomp>.<genexpr> at 0x000002240717CEB0>]}
我是python新手,所以我真的不明白我所做的有什么错。 谢谢你的帮助
不完全确定我是否完全得到了您需要的内容,但如果您希望更新词典,以便词典列表中的每个元素都与序列列表的长度分开,您可以尝试:
如果不想更新原始词典,可以创建一个新词典:
如果我正确理解你的问题(如果这不是你的意思,请纠正/澄清),你可以使用以下词典理解:
相关问题 更多 >
编程相关推荐