-3

だから、私はこのようなファイルを持っています:

Mark Brown
12 2345
45 6780


63 3210
Peter Tailor

10 15430
114 1230
23 3450



John Smith
234 12130
11 32410

名前は明らかで、名前の下に X 行があり、各行に ID と VALUE があります (空白行もあります)。次のように、すべての名前と最大値の ID をファイルに書き出す必要があります。

Mark Brown 45
Peter Tailor 10
John Smith 11

名前が1つしかない場合は簡単にできますが、X人の名前が含まれていると、手がかりがありません:(何かアイデアや助けはありますか?

4

2 に答える 2

0

暇な時間があったので、辞書を作成するコードを次に示します。各行を理解するための練習としてお見せします:)

from itertools import groupby
with open('testing.txt') as file:
    goodlines = [line.strip() for line in file if line.strip()]
    splitted = list( list(val[1]) for val in groupby(goodlines, lambda l: l[0].isdigit()))
    names = [ list(val)[0] for val in splitted[::2] ]
    val_split = [ [v.split() for v in val] for val in splitted[1::2] ]
    val_sorted = [ sorted(val, key=lambda v:int(v[1]))[-1][0] for val in val_split]
    result = dict(zip(names, val_sorted))
print result
于 2013-04-07T21:57:42.613 に答える