在python(100 k行)中处理大输入的最佳方法是什么?

时间:2015-01-08 11:01:45

标签: python python-2.7 input

我需要处理100k行的输入(每行包含一个字符串)并在每一行上执行一个函数。该函数将为每个字符串返回一个结果,并应将其打印到控制台。 这样做的最佳方式是什么?

我目前的尝试是:

strings = []
for i in xrange(int(input())):
    strings.append(raw_input())

更多背景:我想在Hackerrank上解决问题。输入看起来像这样(由Hackerrank提供): https://hr-testcases.s3.amazonaws.com/4187/input02.txt?AWSAccessKeyId=AKIAINGOTNJCTGAUP7NA&Expires=1420719780&Signature=iSzA93z7GKVIcn4NvdqAbbCOfMs%3D&response-content-type=text%2Fplain

2 个答案:

答案 0 :(得分:2)

您无需将整个文件存储在内存中,因为您在阅读文件时正在计算和打印结果。

因此,只需逐行读取文件,进行计算并打印结果:

with open('large-file.txt') as the_file:
    for line in the_file:
       result = do_something_with(line)
       print(result)

答案 1 :(得分:0)

使用stdin流,stdin就像文件流

import sys
for line in sys.stdin
  do_work(line)
相关问题