我是 Python 菜鸟。经过几个小时的谷歌搜索和搜索 stackoverflow ,我未能找到解决问题的方法:
我使用外部脚本来读取包含分子活动信息的文件。读取数据后,数据将以下列形式出现在列表中:
INACT67481 -10.84
也就是说,分子的名称和它的活性值,用一个空格分隔。分子名称的长度变化很大。
现在,问题是,每个分子可能有多个(最多 n 个)值,并且只应保留最高值,同时确保顺序不会改变(除了删除具有较小值的重复项)。
在诸如this和this之类的线程的帮助下,我知道如何简单地删除重复项,但是对于如何仅删除具有最小值的那个而不诉诸可怕的循环混乱,我感到很迷茫。
编辑:我也可以在 python 中重写文件解析脚本,如果有不同形式的数据会更容易。
EDIT: Sample data:
CHEMBL243059.smi 11.75
CHEMBL115092.smi 10.49
CHEMBL244771.smi 10.79
CHEMBL471221.smi 10.78
CHEMBL573301.smi 10.77
CHEMBL469583.smi 10.77
CHEMBL115092.smi 10.97
CHEMBL244771.smi 8.95
CHEMBL16781.smi 10.76
CHEMBL440776.smi 10.76
CHEMBL243059.smi 10.75
CHEMBL115092 .smi 10.69
应该返回:
CHEMBL243059.smi 11.75
CHEMBL244771.smi 10.79
CHEMBL471221.smi 10.78
CHEMBL573301.smi 10.77
CHEMBL469583.smi 10.77
CHEMBL115092.smi 10.97
CHEMBL1678174076 10.7610
CHEMBL.