python-字符串的join要比+操作效率高
2015-05-21 20:36
225 查看
代码
#-*- coding: utf-8 -*- from time import time def plus_test(): t = time() s = '' for i in xrange(1000000): s += 'test' print(time() - t) def join_test(): t = time() li = [] for i in xrange(1000000): li.append('test') s = ''.join(li) print(time() - t) plus_test() join_test()
数据
函数 | 运行时间 |
---|---|
plus_test() | 1.06100010872 |
join_test() | 0.110999822617 |
原因
字符串对象是不可改变的,也就是说在python创建一个字符串后,你不能把这个字符中的某一部分改变。任何上面的函数改变了字符串后,都会返回一个新的字符串,原字串并没有变。所以上面的例子中,任何对字符串的操作包括’+’操作符都将创建一个新的字符串对象,而不是改变原来的对象.因此N个字符串相加必将丢弃中间N-1个结果,而列表不同,列表是可以改变的,因此前面使用list的append,再使用join还原成字符串,只内建了一次,节省了很多资源和时间。
字符串不可改变的现象其实这也是有变通的办法的,可以用S=list(S)这个函数把S变为由单个字符为成员的list,这样的话就可以使用S[3]=’a’的方式改变值,然后再使用S=” “.join(S)还原成字符串。
相关文章推荐
- python 中字符串连接+、join、%替换三种效率问题
- [python]join函数操作字符串
- Python常见字符串操作函数小结【split()、join()、strip()】
- python之字符串的操作和使用
- python 字符串操作
- 转 Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
- Python学习笔记(23)-Python字符串常用操作
- python字符串截取操作
- python学习——采用“+”和“join”两种方法合并字符串
- 黄聪:Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
- Python字符串常见操作
- Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结
- Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
- Python 常用字符串操作
- python对字符串的基本操作
- Python字符串操作
- python里的字符串常用内置方法和格式化操作
- Python 字符串操作(截取/替换/查找/分割)
- Python中字符串的操作
- 黄聪:Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)