我有一本字典,就像这个小例子:
小例子:
dict = {1: {'A': 8520, 'C': 5772, 'T': 7610, 'G': 5518}, 2: {'A': 8900, 'C': 6155, 'T': 6860, 'G': 5505}}
我想制作另一本字典,在其中,我将得到每个子字典中每个数字的频率,而不是绝对数。例如,对于第一个内部字典,我会有以下子字典:
1: {'A': 31.25, 'C': 21, 'T': 27.75, 'G': 20}
以下是预期输出:
dict2 = {1: {'A': 31.25, 'C': 21, 'T': 27.75, 'G': 20}, 2: {'A': 32.5, 'C': 22.50, 'T': 25, 'G': 20}}
我尝试使用以下命令在python中执行此操作:
dict2 = {}
for item in dict.items():
freq = item.items/sum(item.items())
dict2[] = freq
但是这个代码的结果不是我想要的。你知道怎么修吗?你知道吗
您想要的是在不修改大字典的键的情况下处理内部字典。将频率外包到一个函数中:
然后使用dict理解将函数应用于所有子词典:
请注意,我添加了一个
* 100
,从您的输出中可以看出,您正在查找来自0-100
的百分比,而不是来自0-1
的float
。你知道吗编辑:
如果您使用python2
/
是整数除法,那么添加一个float
如下:您可以执行以下操作:
输出
相关问题 更多 >
编程相关推荐