03.06 这是最全面的python字符串拼接总结(文末附赠python最完整教程)

这是最全面的python字符串拼接总结(文末附赠python最完整教程)

Python 的概念


在 Python 中字符串连接有多种方式,这里简单做个总结,应该是比较全面的了,方便以后查阅。


加号连接
第一种,通过+号的形式:

<code>>>> a, b = 'hello', ' world'>>> a + b'hello world'/<code>


逗号连接
第二种,通过,逗号的形式:

<code>>>> a, b = 'hello', ' world'>>> print(a, b)hello world/<code>


但是,使用,逗号形式要注意一点,就是只能用于print打印,赋值操作会生成元组:

<code>>>> a, b('hello', ' world')/<code>

python之禅注:实际上,这不算是字符串连接的一种方式,因为'hello', ' world'会当作一个元组存在,通过解包(unpacking)的方式赋值给变量 a 和 b.小编推荐一个学python的学习裙,【六九九+七四九+八五二】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!


直接连接
第三种,直接连接中间有无空格均可:

<code>print('hello' ' world')print('hello''world')/<code>

Python之禅注:这算是Python里面的一种语法糖,连续的字符串会自动拼接成一个字符串。在内存中不会存在两个字符串对象。(代码可左右滑动)

<code>>>> def x():... a = 'a''b'...>>> dis.dis(x) 2 0 LOAD_CONST 1 ('ab') 3 STORE_FAST 0 (a) 6 LOAD_CONST 0 (None) 9 RETURN_VALUE/<code>


百分号 %
第四种,使用%操作符。

在 Python 2.6 以前,%操作符是唯一一种格式化字符串的方法,它也可以用于连接字符串。

<code>print('%s %s' % ('hello', 'world'))/<code>


format函数
第五种,使用format方法。

format 方法是 Python 2.6 中出现的一种代替 % 操作符的字符串格式化方法,同样可以用来连接字符串。

<code>print('{}{}'.format('hello', ' world')/<code>


join函数
第六种,使用join内置方法。


字符串有一个内置方法join,其参数是一个序列类型,例如数组或者元组等。

<code>print('-'.join(['aa', 'bb', 'cc']))/<code>


f-string
第七种,使用f-string方式。

Python 3.6 中引入了 Formatted String Literals(字面量格式化字符串),简称 f-string,f-string 是 % 操作符和 format 方法的进化版,使用 f-string 连接字符串的方法和使用 %操作符、format 方法类似。小编推荐一个学python的学习裙,【六九九+七四九+八五二】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

<code>>>> aa, bb = 'hello', 'world'>>> f'{aa} {bb}''hello world'/<code>


星号 *
第八种,使用*操作符。

<code>>>> aa = 'hello '>>> aa * 3'hello hello hello '/<code>


Python之禅注:*操作符其实是一种操作符重载操作,对应的魔术方法是 __mul__

<code>>>> a = [1]>>> a*2[1, 1]>>> a.__mul__(3)[1, 1, 1]/<code>


小结


连接少量字符串时,推荐使用+号操作符。

如果对性能有较高要求,并且python版本在3.6以上,推荐使用f-string。例如,如下情况f-string可读性比+号要好很多:

<code>a = f'姓名:{name} 年龄:{age} 性别:{gender}'b = '姓名:' + name + '年龄:' + age + '性别:' + gender/<code>

连接大量字符串时,推荐使用 join 和 f-string 方式,选择时依然取决于你使用的 Python 版本以及对可读性的要求。


笔者曾经做过一个测试,python3.6中,数据量不大的情况下 +操作甚至比join操作还快。你还有遇到过哪些神操作,欢迎留言。

最后,想学习Python的小伙伴们!


请关注+私信回复:“学习”就可以拿到一份我为大家准备的Python学习资料!

这是最全面的python字符串拼接总结(文末附赠python最完整教程)


分享到:


相關文章: