我认为有很多方法可以做到这一点,尽管我会使用字典
from collections import defaultdict
id_value_dict = defaultdict()
for line in open(idfile.txt).readlines():
id, value = line.strip().split()
if id not in id_value_dict:
id_value_dict[id] = int(value)
else:
if id_value_dict[id] < int(value):
id_value_dict[id] = int(value)
下一步是写出字典
out_ref = open(outputfile.txt,'w')
for key, value in id_value_dict:
outref.write(key + '\t' + str(value)
outref.close()
有更巧妙的方法可以做到这一点,我认为字典可以使用 lamda 或列表理解以单行方式编写,但我喜欢从简单开始
以防万一您需要对结果进行排序,有很多方法可以做到这一点,但我认为理解在 python 中使用列表和字典至关重要,因为我发现学习思考正确的数据容器通常是关键解决了我的许多问题,但我还是个新手。无论如何,如果您需要排序结果,一个简单的方法就是
id_value_dict.keys().sort()
所以这是关于 python id_value__dict.keys() 的巧妙之处之一是排序的字典键列表
out_ref = open(outputfile.txt,'w')
for key in id_value_dict.keys():
outref.write(key + '\t' + str(id_value_dict[key])
outref.close()
它真的很棘手,因为你可能想要(我知道我一直想要)编码
my_sorted_list = id_value_dict.keys().sort()
但是你会发现 my_sorted_list 不存在(NoneType)