【发布时间】:2018-06-14 15:35:09
【问题描述】:
我有 1K 个文件,每个文件有 1M 行。 我有一个字典,它有大约 2M 键并将它们分配给从 1 到 2M 的 2M 唯一数字。所以条目如下:
dictionary = {
'hakuchita.mutikama' : 3,
'mitiputu.mitanata' : 4,
'pulasika.rukayota' : 1,
'luschi.rulu.pitana' : 2
}
每个文件的每一行都是这些键之一。我想用它们的值替换所有这些键。
这是我的代码:
for filename in os.listdir('data'):
with fileinput.FileInput('data/' + filename, inplace=True) as file:
for line in file:
print(dictionary[line[:-1]])
但我刚刚运行了我的代码,这需要很长时间。
完成这项工作的最快方法是什么?
【问题讨论】:
-
不要从每行输入中删除换行符,而是在字典键中添加换行符。这将节省十亿次切片操作。
-
@chepner 好点。谢谢!实际上是 2B,因为我也将它们从字典中删除了!大声笑。
-
定义“年龄”。
-
@StefanPochmann 从 Piacenzian 到 Zanclean。
标签: python performance dictionary io mapping