所以,我的文件是这样的:
Mark Brown
12 2345
45 6780
63 3210
Peter Tailor
10 15430
114 1230
23 3450
John Smith
234 12130
11 32410
名称很明显,名称下方有X行,ID为ID,每行有一个VALUE(也有空行)。我需要写一个文件的每个名字,以及最大的VALUE ID,如下所示:
Mark Brown 45
Peter Tailor 10
John Smith 11
如果只有一个名字,我可以做到这一点,但是在其中有X个名字,我不知道:( 有什么想法或帮助吗?
答案 0 :(得分:0)
我认为首先你读取每一行并检查它是否以字母或数字开头(即如果ist是名称或ID)*然后你为每个名字创建一个元素,其中包含一个包含所有ID的列表。您使用排序算法对它们进行排序,之后,您只需写出所有内容(应该没有问题)
*您还必须检查空行
答案 1 :(得分: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