Python 的字符串拼接 join、format 源码理解,有大佬给我讲一下吗?小白刚入门,不知道怎么看源码,有大佬告知一下怎么看源码之类的,万分感谢。
Python 的字符串拼接 join、format 源码理解,有大佬给我讲一下吗?小白刚入门,不知道怎么看源码,有大佬告知一下怎么看源码之类的,万分感谢。
|
1
百度一下很难吗,我都不想说谷歌了
|
|
whoami9894Jul 23, 2018 via Android
3
放心吧,不会有人给你讲的
|
|
4
join 是首先遍历 list 中的每一个字符串确定 maxchar 通过 maxchar 和所有字符串的长度和 sz 通过 PyUnicode(sz,maxchar) 创建新的字符串对象 然后通过每一个字符串的长度和偏移将 list 字符串快速拷贝到新串中。
format 其实是先通过 FORMAT_VALUE 将其他类型转换为 str 类型并且把 str 压入栈。然后进行 join join 和 format 两个都落实到 _PyUnicode_JoinArray()这个函数上去了。 比如 f"{100},200,{300}"等同与''.join(['100',',200,','300']) 说到效率问题因为 join 只能连接字符串而且 FORMAT_VALUE 这个字节码他的具体计算会落实到 Python 实现所以转化的效率不高。 也就是说 join 和 format 的效率区别在于 format 需要将其他类型转化成为 str 而且这个转化过程还是 Python 实现的而 join 只针对与 str. |
|
xiexingjiaJul 24, 2018
5
觉得楼主想问的是 join format 怎样用
找本书去看 |
|
matrix273Jul 24, 2018 via Android
6
多练习几个语句就好了,又不会怀孕。
|
|
C90Jul 24, 2018
7
上来就造原子弹?
|
|
wizardozJul 24, 2018
8
我一直认为看 python 源码对于学 python 没啥用,这是我不看源码的理由
|