2006年01月15日 星期日 00:15
python中string是immutable,所以下面的代码感觉效率有些低
for i in xrange(1000):
s = s + 'something'
因为创建了和销毁了1000个string
能不能先做个够大的buffer,然后修改之,最后转换成string,好像
l = []*1000*9 # len('something') == 9
for i in xrange(1000): l[i*9:(i+1)*9] = 'something'
s = ''.join(l)
但是上面这个join()不是为这个目的做的,不知道效率是不是也一样低?
或者join()就是为这个目的做的,我想错了?
--
regards,
yzhh
2006年01月15日 星期日 03:46
StringIO和cStringIO On 1/14/06, yzhh <yezonghui at gmail.com> wrote: > python中string是immutable,所以下面的代码感觉效率有些低 > for i in xrange(1000): > s = s + 'something' > 因为创建了和销毁了1000个string > > 能不能先做个够大的buffer,然后修改之,最后转换成string,好像 > l = []*1000*9 # len('something') == 9 > for i in xrange(1000): l[i*9:(i+1)*9] = 'something' > s = ''.join(l) > 但是上面这个join()不是为这个目的做的,不知道效率是不是也一样低? > 或者join()就是为这个目的做的,我想错了? > > -- > regards, > yzhh > > _______________________________________________ > python-chinese > Post: send python-chinese at lists.python.cn > Subscribe: send subscribe to python-chinese-request at lists.python.cn > Unsubscribe: send unsubscribe to python-chinese-request at lists.python.cn > Detail Info: http://python.cn/mailman/listinfo/python-chinese >
2006年01月15日 星期日 08:43
关于"+"操作符和join操作比较,可以参考《Python源码剖析》中的这篇关于字符串对象的文章: http://blog.donews.com/lemur/archive/2005/12/22/667710.aspx On 1/15/06, yzhh <yezonghui at gmail.com> wrote: > > python中string是immutable,所以下面的代码感觉效率有些低 > for i in xrange(1000): > s = s + 'something' > 因为创建了和销毁了1000个string > > 能不能先做个够大的buffer,然后修改之,最后转换成string,好像 > l = []*1000*9 # len('something') == 9 > for i in xrange(1000): l[i*9:(i+1)*9] = 'something' > s = ''.join(l) > 但是上面这个join()不是为这个目的做的,不知道效率是不是也一样低? > 或者join()就是为这个目的做的,我想错了? > > -- > regards, > yzhh > > _______________________________________________ > python-chinese > Post: send python-chinese at lists.python.cn > Subscribe: send subscribe to python-chinese-request at lists.python.cn > Unsubscribe: send unsubscribe to python-chinese-request at lists.python.cn > Detail Info: http://python.cn/mailman/listinfo/python-chinese > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060115/da16e559/attachment.htm
2006年01月15日 星期日 13:11
谢谢,这么说join已经是最快了 Robert Chen wrote: > 关于"+"操作符和join操作比较,可以参考《Python源码剖析》中的这篇关于字符串对象的文章: > http://blog.donews.com/lemur/archive/2005/12/22/667710.aspx -- regards, yzhh
2006年01月15日 星期日 13:25
又学到新东西了,呵呵 shhgs wrote: > StringIO和cStringIO -- regards, yzhh
Zeuux © 2025
京ICP备05028076号