如何最好地在Python中存储大量文本?
我最近发现我的一个学生在做一个独立的项目,他在字典中使用非常大的字符串(2-4MB)作为值.
我从来没有理由使用如此大的文本块,这让我想知道是否存在与创建如此大的字符串相关的性能问题. 有没有比简单创建字符串更好的方法呢?我意识到这个问题主要取决于上下文,但我正在寻找可能涵盖多个可能用例的广义答案. 如果您正在使用那么多文本,那么如何将它存储在代码中,并且如果您只使用只有几个字符的普通字符串,您会做什么不同的事情吗? 解决方法
这很大程度上取决于你对字符串的处理方式.我不完全确定
Python如何存储字符串,但我已经在XEmacs(类似于GNU Emacs)和Emacs Lisp的底层实现上做了很多工作,这是一种像Python这样的动态语言,我知道字符串是怎样的在那里实施.字符串将被存储为类似于数组的内存块.在Python中创建大型数组并不是一个大问题,所以我不认为简单地以这种方式存储字符串会导致性能问题.有些事情需要考虑:
>你是如何建立弦乐的?如果你通过简单地附加到更大的字符串来逐个构建,那么你的O(N ^ 2)算法将非常慢. Java使用StringBuilder类处理它.我不确定Python中是否存在确切的等价物,但您可以简单地创建一个包含您想要连接在一起的所有部分的数组,然后使用’.join(数组)在最后加入. 总而言之,我认为对于简单的情况来说,拥有这样的大字符串是很好的,但是你应该考虑你将要执行的各种操作以及它们的O(…)时间. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |