加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

在python中,为什么s * 3比s s快?

发布时间:2020-12-20 13:01:32 所属栏目:Python 来源:网络整理
导读:我正在浏览谷歌的 python介绍,并且发现声明s * 3比s s s类型为字符串更快. 出现这种情况的原因是什么? 我用Google搜索并找到了which is faster s+=’a’ or s=s+’a’ in python.但这并没有帮助 解决方法 因为s * 3是一个操作,而s s是两个操作;它真的是(s s
我正在浏览谷歌的 python介绍,并且发现声明s * 3比s s s类型为字符串更快.

出现这种情况的原因是什么?

我用Google搜索并找到了which is faster s+=’a’ or s=s+’a’ in python.但这并没有帮助

解决方法

因为s * 3是一个操作,而s s是两个操作;它真的是(s s)s,创建一个额外的字符串对象,然后被丢弃.

您可以通过使用dis查看每个生成的字节码来查看差异:

s s:

3           0 LOAD_FAST                0 (s)
              3 LOAD_FAST                0 (s)
              6 BINARY_ADD          
              7 LOAD_FAST                0 (s)
             10 BINARY_ADD          
             11 RETURN_VALUE

s * 3:

3           0 LOAD_FAST                0 (s)
              3 LOAD_CONST               1 (3)
              6 BINARY_MULTIPLY     
              7 RETURN_VALUE

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读