在python中,为什么s * 3比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    
上一篇:Java中&和\u0026\u0026有什么区别?


下一篇:c# – 运算符’\u0026\u0026’不能应用于’int’和’bool’类型的操作数