python编码:循环添加字符串的效率改进
来源:互联网 发布:mac怎么搜索硬盘文件 编辑:程序博客网 时间:2024/06/16 13:20
#假设buf里有很多字符串,或者我们可以从buf里提取出来很多字符串,我们需要把这些字符串用'\n'连接起来。str = ''for s in buf: str += s + '\n'运行之后我们会发现程序运行的特别慢,效率非常低,这是为什么呢?
python里字符串是不可变的,所以每次str += s的时候,都是将str和s拷贝成一个新的字符串,然后赋给str。随着循环的增加,所要拷贝的内容越来越多,字符串的长度越来越长,最后导致str0被拷贝N+1此,str1被拷贝N次,呈指数级的增加。
这里提供两种解决方案。
- 读写文件形式
f = open('temp.txt', 'w')for s in buf: f.write(s+'\n')f.close()f = open('temp.txt', 'r')str = f.read()f.close()
- 数组缓存方式
arr = []for s in buf: arr.append(s)str = ','.join(arr)
阅读全文
0 0
- python编码:循环添加字符串的效率改进
- python编码:循环添加字符串的效率改进
- 提高你的Python编码效率
- Python的字符串编码规则
- python的字符串、编码问题
- Python字符串的编码问题
- python的字符串和编码
- Python的字符串和编码
- python的字符串和编码
- 代码改进:关于循环代码的效率提高与bug预防
- 循环语句的改进
- 循环队列的改进
- CMFCShellTreeCtrl控件的效率改进
- 【Python】Python中字符串的编码分析
- Python 的 map、列表推导、循环效率比较
- 循环的效率问题
- 循环语句的效率
- 循环语句的效率
- 定时任务调度工具之Timer(四)
- Bash Remote Code Execution (Shellshock)
- MATLAB、C/C++中的对数表示
- ReentrantReadWriteLock读写锁
- Mac终端里神秘的bogon
- python编码:循环添加字符串的效率改进
- Message小结
- 设计模式六大原则
- JS交互示例
- selenium的元素定位
- 简单插入排序
- JSP表达式访问类私有成员的理解
- 字符串类/正则表达式
- 错误处理error C4996: 'fopen': This function or variable may be unsafe