我编写了下面的代码来按照给定的顺序重写一个文本文件。这个顺序在gA
中指定。gA
是一个列表:[[fN0,value0],[fN1,value1] ...]
。我按值对这个列表排序,并想按照这个顺序写出。你知道吗
我的代码运行得很好,但输入速度非常慢(我有一个有50万行的输入,需要2个月的时间来处理)。因此,我正在寻找方法来紧固这个代码。任何想法都欢迎。你知道吗
for k in gA:
fN = k[0]
for lineNum, line in enumerate(slicedFile,start=0):
num, restOfLine = line.split('\t',1)
if num == fN:
out.write(line)
inp.seek(0)
您应该将整个文件读入内存,并将所有行放在一个
dict
的num
中,指向一个list
的line
的num
开头。然后可以遍历gA
并打印该dict
中的所有行:注意:我使用
defaultdict
只是为了缩短代码。如果在这样的defaultdict
中使用了一个不存在的元素,那么它会自动创建(在本例中是list
),因此我可以调用该元素的.append()
。你知道吗相关问题 更多 >
编程相关推荐