これを行うには多くの方法があると思いますが、辞書を使用します
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()
これを行うためのよりスマートな方法があります。辞書は、ラムダまたはリスト内包表記を使用してワンライナーで記述できると思いますが、簡単に始めるのが好きです
結果をソートする必要がある場合に備えて、それを行う方法はたくさんありますが、適切なデータ コンテナーについて考えることを学ぶことが通常の鍵であることがわかったので、python でのリストと辞書の操作を理解することが重要だと思います。私の問題の多くを解決しますが、私はまだ新しいです。ソートされた結果が必要な場合は、簡単に
id_value_dict.keys().sort()
SO これは python id_value__dict.keys() についての巧妙なことの 1 つであり、並べ替えられた辞書のキーのリストです。
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)