专栏首页python小白到大牛这里是最全面的 python 字符串拼接总结,赶快收藏!
原创

这里是最全面的 python 字符串拼接总结,赶快收藏!

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

加号连接

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

>>> a, b ='hello',' world'

>>> a + b

'hello world'

逗号连接

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

>>> a, b ='hello',' world'

>>> print(a, b)

hello world

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

>>> a, b

('hello',' world')

注:实际上,这不算是字符串连接的一种方式,因为'hello', ' world'会当作一个元组存在,通过解包(unpacking)的方式赋值给变量 a 和 b.

直接连接

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

print('hello'' world')

print('hello''world')

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

>>> defx():

... a ='a''b'

...

>>> dis.dis(x)

20LOAD_CONST1('ab')

3STORE_FAST0(a)

6LOAD_CONST0(None)

9RETURN_VALUE

百分号 %

第四种,使用%操作符。

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

print('%s %s' % ('hello', 'world'))

format函数

第五种,使用format方法。

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

print('{}{}'.format('hello', ' world')

join函数

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

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

print('-'.join(['aa', 'bb', 'cc']))

f-string

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

Python 3.6 中引入了 Formatted String Literals(字面量格式化字符串),简称 f-string,f-string 是 % 操作符和 format 方法的进化版,使用 f-string 连接字符串的方法和使用 %操作符、format 方法类似。

>>> aa, bb ='hello','world'

>>> f'{aa} {bb}'

'hello world'

星号 *

第八种,使用*操作符。

>>> aa ='hello '

>>> aa *3

'hello hello hello '

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

>>> a = [1]

>>> a*2

[1,1]

>>> a.__mul__(3)

[1,1,1]

小结

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

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

a = f'姓名:{name} 年龄:{age} 性别:{gender}'

b ='姓名:'+ name +'年龄:'+ age +'性别:'+ gender

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

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

我有一个微信公众号,经常会分享一些python技术相关的干货;如果你喜欢我的分享,可以用微信搜索“python语言学习” 关注

欢迎大家加入千人交流答疑裙:699+749+852

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 可能是最全面的 Python 字符串拼接总结

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

    小小科
  • 可能是最全面的 Python 字符串拼接总结

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

    马哥linux运维
  • 可能是最全面的 Python 字符串拼接总结

    https://segmentfault.com/a/119000001.png"font-size: 12px;">

    小小科
  • Python 工匠:使用数字与字符串的技巧

    数字是几乎所有编程语言里最基本的数据类型,它是我们通过代码连接现实世界的基础。在 Python 里有三种数值类型:整型(int)、浮点型(float)和复数(c...

    用户2196567
  • 20190624一周文章阅读和收藏: 图像分类、检测,NLP,Python编程

    打算每周整理下这周看过觉得不错的文章,主要是机器学习、深度学习、Python编程方向的,包括但不局限于论文、综述、有趣的项目以及工具教程推荐,目前这个系列的名字...

    kbsc13
  • Python工匠:数字与字符串(上)

    “ 编程某种意义上是一门『手艺』,因为优雅而高效的代码,就如同完美的手工艺品一样让人赏心悦目。 ” 致“匠人” 数字是几乎所有编程语言里最基本的数据类型,它是...

    腾讯NEXT学位
  • join()方法的神奇用处与Intern机制的软肋

    上篇文章《Python是否支持复制字符串呢?》刚发出一会,@发条橙 同学就在后台留言,指出了一处错误。我一惊,马上去验证,竟然真的错了,而且在完全没意料到的地方...

    Python猫
  • 万字长文爆肝Python基础入门【第二弹、超详细数据类型总结】

    近期和大家分享总结了关于Python基础进阶的文章“【全网力荐】堪称最易学的Python基础入门教程”,然后得到了很多小伙伴的支持和肯定,但是同时很多刚开始学习...

    灰小猿
  • 使用项目驱动学习编程的诀窍

    在日常工作和学习中,我们会发现有些人学习东西非常快,有些人学习东西却像蜗牛一样半天走不动一步。难道说他们的天赋和才智不一样吗?放在一百年前,可能确实是这样。但放...

    青南

扫码关注云+社区

领取腾讯云代金券