【问题标题】:inputting about 8mb of data in python在 python 中输入大约 8mb 的数据
【发布时间】:2016-05-17 01:42:43
【问题描述】:

输入的第一行包含一个整数 T,表示测试用例的数量。

每个测试用例的第一行包含三个空格分隔的整数 - N、x 和 M。第二行包含 N 个空格分隔的整数 A1、A2、...、AN。

example:  
     2
    3 2 3
    1 2 3
    3 3 3 
    1 2 3

我正在使用这种格式来扫描值,但由于 I/O 文件约为 8 mb,因此 SPOJ 超出了时间限制。

t=int(input())
for k in range(0,t):
    n,x,m=(input().split())
    n=int(n)
    x=int(x)
    m=int(m)
    lst=[]
    lst=[int(x) for x in input().split()]

谁能给我最快的扫描i/p的方法

【问题讨论】:

  • 这样的输入在哪里?在一个文件中?由用户手动提供/输入重定向? time limit error 是什么?由什么/谁扔的?
  • 在一个竞争性编程问题中
  • 您确定是在解析阶段而不是在处理阶段收到错误吗?
  • 这不是错误,但我想要一种更快输入的方法
  • 除了删除不必要的代码(例如lst=[]),我认为没有太多可以改进的地方

标签: python python-3.x io


【解决方案1】:

8Mb 的数据非常小 - 我们经常读入 1Gb 的数据(使用 Pandas) - 取决于当时的数据转换 - 加载通常需要不到 30 秒。

尝试分析您的代码 - 这样您就可以确定(而不是猜测)瓶颈在哪里。

您的机器上有多少内存 - 因为这会在某些时候产生影响?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-15
    • 2017-04-01
    • 1970-01-01
    相关资源
    最近更新 更多