Python中文
首页
教程
问答
标签
搜索
登录
注册
Python:用同一个键合并两个字典的最优雅的方法
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在研究基因组规模的模型,并试图创造一种适合两种最佳通量条件的最小培养基。我得到了两个字典,其中包含所需的媒体组件,如下所示:</p> <pre><code>EX_C00001_ext_b 1.132993 EX_C00011_ext_b 1.359592 EX_E1_ext_b 16.000000 EX_C00034_ext_b 0.000088 EX_C00244_ext_b 0.259407 EX_C00182N_cyt_b 0.006079 EX_C00009_ext_b 0.020942 EX_C01330_ext_b 0.000110 EX_C00080_ext_b 0.258331 EX_C00001_ext_b 0.780699 EX_C14819_ext_b 0.000197 EX_C00059_ext_b 0.005162 EX_C00011_ext_b 1.198398 EX_C14818_ext_b 0.000217 EX_C00305_ext_b 0.000802 EX_C00038_ext_b 0.000088 EX_C00070_ext_b 0.000088 EX_C06232_ext_b 0.000088 EX_C00076_ext_b 0.000131 EX_C00238_ext_b 0.004925 EX_E1_ext_b 16.000000 EX_C00175_ext_b 0.000094 </code></pre> <p>我想合并这两个字典,以最优雅的方式为每个代谢物选择最高的值,它应该是可用的,无论字典大小。你知道吗</p> <p>它应该给我以下结果:</p> <pre><code>EX_C00034_ext_b 0.000088 EX_C00244_ext_b 0.259407 EX_C00182N_cyt_b 0.006079 EX_C00009_ext_b 0.020942 EX_C01330_ext_b 0.000110 EX_C00080_ext_b 0.258331 EX_C00001_ext_b 1.132993 EX_C14819_ext_b 0.000197 EX_C00059_ext_b 0.005162 EX_C00011_ext_b 1.359592 EX_C14818_ext_b 0.000217 EX_C00305_ext_b 0.000802 EX_C00038_ext_b 0.000088 EX_C00070_ext_b 0.000088 EX_C06232_ext_b 0.000088 EX_C00076_ext_b 0.000131 EX_C00238_ext_b 0.004925 EX_E1_ext_b 16.000000 EX_C00175_ext_b 0.000094 </code></pre> <p>下面是供你使用的例子。你知道吗</p> <pre><code>{'EX_C00034_ext_b': 8.757888959017035e-05, 'EX_C00244_ext_b': 0.2594073529471562, 'EX_C00182N_cyt_b': 0.006078784247428623, 'EX_C00009_ext_b': 0.02094224214212716, 'EX_C01330_ext_b': 0.00010954587179767827, 'EX_C00080_ext_b': 0.2583314448433369, 'EX_C00001_ext_b': 0.7806992563484072, 'EX_C14819_ext_b': 0.00019712476138777617, 'EX_C00059_ext_b': 0.005162038491279668, 'EX_C00011_ext_b': 1.1983981620820985, 'EX_C14818_ext_b': 0.00021724189246195394, 'EX_C00305_ext_b': 0.0008020492051022175, 'EX_C00038_ext_b': 8.757888959017035e-05, 'EX_C00070_ext_b': 8.757888959017036e-05, 'EX_C06232_ext_b': 8.757888959017035e-05, 'EX_C00076_ext_b': 0.00013122381476546977, 'EX_C00238_ext_b': 0.0049252286422986884, 'EX_E1_ext_b': 16.000000000000245, 'EX_C00175_ext_b': 9.42845999482296e-05} {'EX_C00001_ext_b': 1.1329932376320115, 'EX_C00011_ext_b': 1.3595918851584152, 'EX_E1_ext_b': 16.000000000000387} </code></pre> <p>请注意,我不知道哪个字典的值更高。你知道吗</p> <p><strong>编辑</p> <p>从我的示例中可以看出,即使两个字典都包含相同的键,但并不是所有的键都在两个字典中。因此,我无法循环遍历这些键,因为我不知道是否跳过了其中一个键。 我想你可以先从所有需要合并的字典中创建一组键,但我不确定这是否是一个好方法。你知道吗</p> <p>是,只应保存最高值。你知道吗</p> <p><strong>编辑2</strong></p> <p>不幸的是,这样更新媒体后,我得到了一个错误</p> <pre><code>TypeError: in method 'Reaction_setReversible', argument 2 of type 'bool' </code></pre> <p>当我尝试用更新的媒体将模型写入xml文件时。你知道吗</p> <p>**上次编辑**</p> <p>如果有人遇到同样的问题,您只需要指定值为floats。之后一切正常。你知道吗</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>你可以使用一个班轮,由mykolazlotko提供,这是很好的和非常python的方式。或者你可以使用更长的版本,比如:</p> <pre><code>for key, value in dict1.keys(): if key in dict2: dict2[key] = max(dict1[key], dict2[key]) else: dict2[key] = value </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
当用户用PYTHON设置一个或一个不带值的URL时,他们怎么能输入一个/a的代码呢?
2 回答
当用户登录到站点时,如何显示不同的导航栏
1 回答
当用户登录时,在Flask中向用户显示处理结果
7 回答
当用户的Flask会话结束时,我如何从Redis后端中移除所有Celery结果?
8 回答
当用户的Okta配置文件字段当前为blan时,更新该字段
2 回答
当用户的付款逾期2天时,从Django模型检索数据
5 回答
当用户的消息以问号结尾时,如何让机器人说些什么?
10 回答
当用户的系统上可能也安装了Python 2.7时,如何在用户的系统上运行Python 3脚本?
5 回答
当用户确定打印数量时,使用Matplotlib打印动画
8 回答
当用户离开时是否可以删除整个网页?
5 回答
当用户给出一个单词时如何打印?
9 回答
当用户继续更改TKin中的值(使用trace方法)时,使用Entry并更新输入的条目
8 回答
当用户编辑表单字段时,从Django时间字段中删除秒数
6 回答
当用户被更改时,消息不会来自web套接字
7 回答
当用户访问表单时,如何使表单为只读,而不具有更改权限
4 回答
当用户试图更改对象的值时,使用描述符类引发RuntimeError
4 回答
当用户调整GUI的大小时,是否有方法更改GUI内容的大小?
6 回答
当用户调整风的大小时,pythontkinter小部件的大小会不均匀
7 回答
当用户购买某个类别时,是否查找其他类别的销售?
4 回答
当用户转到上一页时,Django和芹菜插入操作
8 回答