Python 什么';这是简单合并文件的最快方法,以及';拆分数组的最快方法是什么?

Python 什么';这是简单合并文件的最快方法,以及';拆分数组的最快方法是什么?,python,Python,在删除重复行的同时,获取文件列表和输出文件名并将其合并到单个文件中的最快方法是什么? 差不多 cat file1 file2 file3 | sort-u>out.file 在python中 不喜欢使用系统调用 以及: 在python中将列表拆分为尽可能相等的X个块(列表列表)的最快方法是什么?(给出一个列表和X。)对于第一个: lines = [] for filename in filenames: f = open(filename) lines.extend(f.read

在删除重复行的同时,获取文件列表和输出文件名并将其合并到单个文件中的最快方法是什么? 差不多

cat file1 file2 file3 | sort-u>out.file

在python中

不喜欢使用系统调用

以及:

在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))
假设文件的长度合理,因为文件中的所有数据将同时存储在内存中。如果要保留对行排序的副作用,只需在写入文件之前添加
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)]
第一:

第二:

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))

块应该保持原始列表中的顺序。这里的“相等”指的是大小。所以列表=(x1,x2,x3,x4)被分成((x1,x2),(x3,x4))X=2。所谓最快,是指写得最快还是执行得最快?另外,你想保留行顺序吗?你应该把这个问题一分为二-你所问的事情彼此不相关,需要分开。
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))