亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

python字符串連接效率問題

標簽:
Python

在python效率的讨论问题中字符串的连接效率有提过,多数建议使用join来代替"+"进行字符串连接

python中一切皆对象 字符串对象就是c api中得stringobject.c看python源码的objects文件可以找到

1."+"。使用加号连接2个字符串会调用静态函数string_concat(register PyStringObject *a ,register PyObject * b),在这个函数中会开辟一块大小是a+b的内存的和的存储单元,然后将a,b字符串拷贝进去,试想一下,如果是n个字符串相连  那么会开辟n-1次内存,是比较耗费资源的

2.对于使用join函数 "".join([a,b])   会调用string_join函数  会计算列表的长度  一次分配一块内存然后拷贝,所以n个字符串相连 开辟内存的次数是1次

所以如果只有2个相连效率区别不大  但是数据多了就会有问题

加点东西(笔记)  python与c语言在创建变量时候的不同

1。整数,python有小整数缓冲池  有一个范围  当定义一个整数a=3.然后删除这个整数使用b=3发现a,b的地址一样的 再使用 c = 1000023执行上面的操作我们发现2个数的地址不一样  小整数缓冲池

2。python中定义一个字符串s = "hello",g = "hello"后 ,s,g的地址相同 ,c语言定义char a[5] = "hello",char b[5] = "hello" ,a和b的字符串地址不同 ,说明又申请了一块内存,python使用的interned机制 首先查询


作者:lpj24
链接:https://www.jianshu.com/p/6a10d5c0e992

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消