result = []
for line in open(fileName).readlines():
line = line.strip()
age = line[0:3] #This will get the first 3 characters of the line
age = int(age)
thisLine = {"age":age, "line":line}
result.append(thisLine)
sortedList = sorted(result, key=lambda k: k["age"])
这可以是修改的HistogramSort的任务。如果允许随机访问写入,它将使用可变的行长度(可选)。非常高效,可以处理大量文件。它分类稳定。在
将120个整数计数器初始化为0。在
逐行读取整个文件,得到年龄值和行长度。在
取这条线的长度,把它加到1岁以上的柜台上。在
在第一次检查之后,每个计数器都会告诉您特定时期的所有行所需的空间(字符数)。在
计算计数器的前缀和;这将告诉您在排序时给定时期的行将从何处开始。最后一个计数器给出文件的总大小。在
然后在第二个过程中,逐行读取,将每一行复制到它所属的新文件中(给定年龄值),并更新相应的计数器。在
[当人类的寿命期望值增加时,调整常数120。]
你可以这样做:
基本上你每行都读
-剥去末端车厢返回和其他
-抓住3个三个字符(这将是你的年龄)
-将其转换为整数
-将它们放入字典/哈希映射中
-把它放到一个数组中
-按hashmap的age属性对数组进行排序
希望这有帮助。在
相关问题 更多 >
编程相关推荐