您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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

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

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

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%相信输入,否则我会认为值得花一些额外的时间来换取能够在晚上安然入睡的条件。

python 2022/1/1 18:50:28 有368人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶