最全面的 Python字符串拼接总结(带注释版)

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

加号连接

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

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

>>> a + b

'hello world'

逗号连接

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

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

>>> print(a, b)

hello world

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

>>> a, b

('hello', ' world')

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

直接连接

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

print('hello' ' world')

print('hello''world')

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

>>> 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

百分号 %

第四种,使用%操作符。

在 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 '

Python之禅注:*操作符其实是一种操作符重载操作,对应的魔术方法是 __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 版本以及对可读性的要求。

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

原文地址:http://blog.51cto.com/13719825/2149959

时间: 2024-11-07 10:20:25

最全面的 Python字符串拼接总结(带注释版)的相关文章

Py 可能是最全面的 python 字符串拼接总结(带注释版)

在 Python 中字符串连接有多种方式,这里简单做个总结,应该是比较全面的了,方便以后查阅. 第一种,+号 >>> a, b = 'hello', ' world' >>> a + b 'hello world' 第二种,逗号 >>> a, b = 'hello', ' world' >>> print(a, b) hello  world 但是,使用,逗号形式要注意一点,就是只能用于print打印,赋值操作会生成元组: >&

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

在 Python 中字符串连接有多种方式,这里简单做个总结,应该是比较全面的了,方便以后查阅. 加号连接 第一种,通过+号的形式: >>> a, b ='hello',' world' >>> a + b 'hello world' 逗号连接 第二种,通过,逗号的形式: >>> a, b ='hello',' world' >>> print(a, b) hello world 但是,使用,逗号形式要注意一点,就是只能用于print打

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

来源: 枫恋寒 链接: https://segmentfault.com/a/119000001.png"font-size: 12px;"> 在 Python 中字符串连接有多种方式,这里简单做个总结,应该是比较全面的了,方便以后查阅. 加号连接 第一种,通过+号的形式: >>> a, b = 'hello', ' world'>>> a + b'hello world' 逗号连接 第二种,通过,逗号的形式: >>> a,

Python字符串拼接的6种方法

Python字符串拼接的6种方法: 1. 加号 第一种,有编程经验的人,估计都知道很多语言里面是用加号连接两个字符串,Python里面也是如此直接用 “+” 来连接两个字符串: 1 print 'Python' + 'Tab' 结果: 1 PythonTab 2. 逗号 第二种比较特殊,使用逗号连接两个字符串,如果两个字符串用“逗号”隔开,那么这两个字符串将被连接,但是,字符串之间会多出一个空格: 1 print 'Python','Tab' 结果: 1 Python Tab 3. 直接连接 第

Python字符串拼接、截取及替换方法总结

字符串拼接: 用字符串的join方法: a = ['a','b','c','d'] content = '' content = ''.join(a) print content content的结果:'abcd' 用字符串的替换占位符替换: a = ['a','b','c','d'] content = '' content = '%s%s%s%s' % tuple(a)  print content content的结果是:'abcd' 字符串截取: python的字串列表有2种取值顺序 1

Python字符串拼接的6种方法(转)

add by zhj: 对于多行字符串连接,第6种连接方法很方便,连接时不会添加额外的空格. 原文:http://www.cnblogs.com/bigtreei/p/7892113.html 1. 加号 第一种,有编程经验的人,估计都知道很多语言里面是用加号连接两个字符串,Python里面也是如此直接用 “+” 来连接两个字符串: print 'Python' + 'Tab' 结果: PythonTab 回到顶部 2. 逗号 第二种比较特殊,使用逗号连接两个字符串,如果两个字符串用“逗号”隔开

Python字符串拼接和格式化输出

1.字符串拼接 example:a = 'hello' , b = 'python' , c = '!' 将a,b ,c 中的字符串连成一句话. 第一种方法:用 + 号a + b +c 第二种方法:格式化字符串 %s'%s %s %s' % (a , b ,c) 第三种方法:''.join()方式,注意括号里是要连接的可以是列表,元祖' '.join([a,b,c]) (注:''里面是连接后面各个字符串的字符) 第四种方法:.format方式'{}{}{}'.format(a,b,c) (注:{

Python字符串拼接(包含字符串拼接数字)

在 Python 中拼接(连接)字符串很简单,可以直接将两个字符串紧挨着写在一起,具体格式为: strname = "str1" "str2" strname 表示拼接以后的字符串变量名,str1 和 str2 是要拼接的字符串内容.使用这种写法,Python 会自动将两个字符串拼接在一起.https://www.furuihua.cn/shenzhen/ [示例]以连续书写的形式拼接字符串: str1 = "Python教程" "ht

python字符串拼接相关

#字符串拼接#str.join(元组.列表.字典.字符串) 之后生成的只能是字符串.str = "-";seq = ("a", "b", "c"); # 字符串序列sqr=['a','b','c','sss']#listssr=str.join(sqr)print('='.join(ssr)) print (str.join(sqr));print (str.join(seq)); seq = {'hello':'nihao'