当前位置: 首页 > 面试题库 >

在python中将字符串转换为数组的最快方法是什么?

卢涵畅
2023-03-14
问题内容

这是我从文本文件中读取的一行:

[54, 95, 45, -97, -51, 84, 0, 32, -55, 14, 50, 54, 68, -3, 57, 88, -1]

我使用readline()以字符串形式读取它。现在,将其转换回数组的最快方法是什么?

谢谢!


问题答案:

我不确定这是最快的,但绝对是最安全/最简单的:

import ast
lst = ast.literal_eval(s)

常规eval也可以工作:

lst = eval(s)

我的机器的一些基本计时:

>>> s = '[54, 95, 45, -97, -51, 84, 0, 32, -55, 14, 50, 54, 68, -3, 57, 88, -1]' 
>>> def f1():
...    eval(s)
... 
>>> def f2():
...    ast.literal_eval(s)
... 
>>> timeit.timeit('f1()', 'from __main__ import f1')
31.415852785110474
>>> timeit.timeit('f2()', 'from __main__ import f2')
46.25958704948425

因此,根据我的计算机,eval速度比快50%ast.literal_eval。但是,这eval绝对是不安全的,除非您完全信任它,否则切勿在任何字符串上使用它。除非这是一个真正的演示瓶颈,并且您100%相信输入,否则我会认为值得花一些额外的时间来换取能够在晚上安然入睡的条件。



 类似资料:
  • 问题内容: 将数字转换为字符串的“最佳”方法是什么(就速度优势,清晰度优势,内存优势等而言)? 一些例子: 问题答案: 像这样: 实际上,即使我通常是为了简单方便而这样做,但 对于原始速度而言 ,似乎出现了1000多次迭代,但 对于 根据上述JSPerf测试最快: 应该注意的是,当您认为速度差异可以在0.1秒内进行1百万次转换时,速度差异并不是太大。 更新: 速度因浏览器而异。在Chrome中,根

  • 问题内容: 使用PHP,将这样的字符串转换为整数的最快方法是什么? 为什么该特定方法最快?如果它收到意外的输入(例如或数组)会怎样? 问题答案: 我刚刚进行了快速基准测试: 平均而言,调用intval()的速度要慢两倍半,并且如果您的输入已经是整数,则相差最大。 我想知道 为什么 。 更新:我再次使用强制性进行测试 附录: 我刚刚遇到了一种意想不到的行为,选择以下一种方法时应注意: 使用PHP 5

  • 我天真的尝试是这样的: 但这比我想要的慢多了。我的分析显示是减速的地方,但我不确定我能让它变得简单多少。 我觉得如果没有Swift/Objc的开销,这将是非常快的。在C语言中,我认为这是一个简单的循环,其中一个字节的内存与一个常量相比较,但我不确定应该查看的函数或语法是什么。 我也试过 而且快了15%左右。我希望不止这些。

  • 在Objective-C中,我使用了以下内容:

  • 本文向大家介绍python将字符串转换成数组的方法,包括了python将字符串转换成数组的方法的使用技巧和注意事项,需要的朋友参考一下 python将字符串转换成数组的方法。分享给大家供大家参考。具体实现方法如下: 输出结果: 希望本文所述对大家的python程序设计有所帮助。

  • 问题内容: 从TypeError的答案中可以看出,有两种不同的方式可以将字符串转换为字节:’str’不支持缓冲区接口 以下哪种方法更好或更Pythonic?还是仅仅是个人喜好问题? 问题答案: 如果你查看的文档,它将指向: ([源,编码,错误) 返回一个新的字节数组。类型是一个可变的整数序列,范围为。它具有可变序列类型中介绍的大多数可变序列的常用方法,以及字节类型具有的大多数方法,请参见Bytes