python - python 两个字典相减

标签 python dictionary

这可能是一个非常幼稚的问题。我试图通过以下方式比较两个字典的值:

distance = dictionary1[position] - dictionary2[position]

但它不起作用,它给了我dictionary1的第一个值。

我也尝试过:

set distance = set(dictionary1[position]) - set(dictionary2[position])

但得到相同的结果。

知道两个字典中的值如何相减吗?

字典 1 和 2 就像:

dictionary1 = {'chr1': '3434351', 'chr10': '5329532', 'chr11': '2355620',
               'chr12': '40841359', 'chr13': '101523938', 'chr14': '453255816',
               'chr17': '491453323', 'chr18': '22361089', 'chr19': '34965774',
               'chr2': '16025716', 'chr20': '295671539', 'chr21': '2067974'}

dictionary2 = {'chr1': '15845763', 'chr10': '186537818', 'chr11': '3715102',
               'chr12': '1138647613', 'chr13': '123235062', 'chr14': '68159413',
               'chr15': '51790735', 'chr16': '19324170', 'chr17': '78184979',
               'chr18': '76968073', 'chr19': '37299170', 'chr2': '18329102',
               'chr20': '31934245', 'chr22': '32679692'}

最佳答案

使用字典理解:

{ k:int(dic1[k]) - int(dic2[k]) for k in dic1 if k in dic2 }

或者对于 Python <2.7:

dict((k,int(dic1[k]) - int(dic2[k])) for k in dic1 if k in dic2)

关于python - python 两个字典相减,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9960133/

相关文章:

python - 使用Python更新二进制文件中的值

python - 如何在Windows中获取物理驱动器

python - 有人解析过维基词典吗?

c# - 什么时候应该使用 ConcurrentDictionary 和 Dictionary?

python - 子列表的计数值

python - 更改 json 值并创建新值

python - 基本 Django 查询?

python - 在 pandas.merge_asof 之后保留两个合并键

python - Query PubMed with Python - 如何从查询中获取所有文章详细信息到 Pandas DataFrame 并以 CSV 格式导出

sql - 如何从map(string,string)字段获取特定值?