【发布时间】:2013-05-13 06:16:46
【问题描述】:
假设我有一个字符串,其中包含来自数据库或电子表格的逗号分隔格式的数据。
例如:
data = "hello,how,are,you,232.3354,good morning"
假设这些“记录”中可能有 200 个字段。
我有兴趣查看此记录的某些字段。用 Python 最快的方法是什么?
最简单的方法是这样的:
fields = data.split(",")
result = [fields[4], fields[12], fields[123]]
有没有更快的方法来做到这一点,利用以下事实:
- 您只需为结果分配一个包含 3 个元素和 3 个字符串对象的列表。
- 您可以在到达字段 123 后停止扫描数据字符串。
我尝试编写一些代码,使用重复调用 find 来跳过传递的逗号,但如果最后一个字段在字符串下方太远,这将比基本拆分解决方案慢。
我正在处理数百万条记录,因此欢迎任何加速。
【问题讨论】:
-
用 Python 解决方案很难击败原生
str.split()。 -
我不知道它是否更快,但您可以避免使用
data.split(",", 124)拆分整个字符串。 -
您确定这是您应用程序的瓶颈吗?您需要多快才能将瓶颈转移到应用中的其他位置?
标签: python performance csv split