在刪除重複行的同時,將文件列表和輸出文件的名稱合併爲單個文件的最快捷方式是什麼? 類似於什麼是簡單合併文件的最快捷方式,什麼是分割數組的最快捷方式?
cat file1 file2 file3 | sort -u> out.file
in python。
寧願不使用系統調用。
AND:
什麼是在Python到X塊(名單列表)拆分列表儘可能相等,最快捷的方式? (給定一個列表和X.)
在刪除重複行的同時,將文件列表和輸出文件的名稱合併爲單個文件的最快捷方式是什麼? 類似於什麼是簡單合併文件的最快捷方式,什麼是分割數組的最快捷方式?
cat file1 file2 file3 | sort -u> out.file
in python。
寧願不使用系統調用。
AND:
什麼是在Python到X塊(名單列表)拆分列表儘可能相等,最快捷的方式? (給定一個列表和X.)
對於第一:
lines = []
for filename in filenames:
f = open(filename)
lines.extend(f.read().split('\n')
f.close()
lines = list(set(lines)) #remove duplicates
f = open(outfile_name, 'w')
f.write(''.join(lines))
假設文件是一個合理的長度,因爲所有從文件中的數據將被同時存儲在存儲器中。如果要保留排序行sort
的副作用,則只需在寫入文件之前添加lines.sort()
即可。
而第二個:
step_size = len(orig_list)/num_chunks
split_list = [orig_list[i:i+step_size] for i in range(0, len(orig_list), step_size)]
第一:
lines = set()
for filename in filenames:
with open(filename) as inF:
lines.update(inF)
with open(outfile, 'w') as outF:
outF.write(''.join(lines))
二:
def chunk(bigList, x):
chunklen = len(bigList)/x
for i in xrange(0, len(bigList), chunklen):
yield bigList[i:i+chunklen]
listOfLists = list(chunk(bigList, x))
大塊應保持在原來的列表中的順序。這裏的平等是指大小。所以對於X = 2,LIST =(x1,x2,x3,x4)被分成((x1,x2),(x3,x4))。 – cokacola 2010-10-08 19:28:03
最快,你的意思是寫的最快還是最快?另外,你是否想要保留行順序? – JoshD 2010-10-08 19:30:06
你應該把這個問題分成兩部分 - 你所要求的東西不相互關聯,需要分開。 – 2010-10-08 19:36:11