回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有一个类似于以下示例的python字典:</p>
<p>小例子:</p>
<pre><code>dict = {'chr2:173370685-173370692': 'TACCAAG', 'chr5:118309829-118309836': 'TCTCCTT', 'chr12:104659651-104659658': 'GACCAAA'}
</code></pre>
<p>我只需要每个项目的值部分,它是一个字母序列,字母是<code>A, T, C or G</code>,而且每个序列的长度是7,所以每个字母序列都有<code>7 positions</code>。我想得到每个位置中提到的4个字母的频率(我们有<code>7</code>个位置)。对于每一个职位,我都会编一本字典,其中字母是关键,每个字母的频率是有价值的。最后我想为所有七个位置制作一本字典,第一本字典就是最后一本字典的值。
下面是小示例的预期输出:</p>
<p>预期产量:</p>
<pre><code>final = {one: {'T': 2, 'A': 1, 'C': 0, 'G': 0}, two: {'T': 0, 'A': 2, 'C': 1, 'G': 0}, three: {'T': 1, 'A': 0, 'C': 2, 'G': 0}, four: {'T': 0, 'A': 0, 'C': 3, 'G': 0}, five: {'T': 0, 'A': 2, 'C': 1, 'G': 0}, six: {'T': 1, 'A': 2, 'C': 0, 'G': 0}, seven: {'T': 1, 'A': 1, 'C': 0, 'G': 1}}
</code></pre>
<p>为了得到这个输出,我在<code>python</code>中编写了一个代码,但它并没有返回我想要的结果。你知道如何修复下面的代码吗?你知道吗</p>
<pre><code>one=[]
two=[]
three=[]
four=[]
five=[]
six=[]
seven=[]
mylist = dict.values()
for threeq in mylist:
one.append(threeq[0])
two.append(threeq[1])
three.append(threeq[2])
four.append(threeq[3])
five.append(threeq[4])
six.append(threeq[5])
seven.append(threeq[6])
from collections import Counter
one=Counter(one)
two=Counter(two)
three=Counter(three)
four=Counter(four)
five=Counter(five)
six=Counter(six)
seven=Counter(seven)
</code></pre>