今天,跟大家一起来学习Python拼接字符串的几种种方式。
1、%方式
print('%s %s' % ('Hello', 'world')) >>> Hello world
%号格式化字符串的方式继承自古老的C语言,这在很多编程语言都有类似的实现。上例的%s是一个占位符,它仅代表一段字符串,并不是拼接的实际内容。实际的拼接内容在一个单独的%号后面,放在一个元组里。
类似的占位符还有:%d(代表一个整数)、%f(代表一个浮点数)、%x(代表一个16进制数),等等。%占位符既是这种拼接方式的特点,同时也是其限制,因为每种占位符都有特定意义,实际使用起来太麻烦了。
2、format()拼接方式
# 简洁版 s1 = 'Hello {}! My name is {}.'.format('World', 'Python猫') print(s1) >>>Hello World! My name is Python猫. # 对号入座版 s2 = 'Hello {0}! My name is {1}.'.format('World', 'Python猫') s3 = 'Hello {name1}! My name is {name2}.'.format(name1='World', name2='Python猫') print(s2) >>>Hello World! My name is Python猫. print(s3) >>>Hello World! My name is Python猫.
这种方式使用花括号{}做占位符,在format方法中再转入实际的拼接值。容易看出,它实际上是对%号拼接方式的改进。这种方式在Python2.6中开始引入。
上例中,简洁版的花括号中无内容,缺点是容易弄错次序。对号入座版主要有两种,一种传入序列号,一种则使用key-value的方式。实战中,我们更推荐后一种,既不会数错次序,又更直观可读。
3、() 类似元组方式
s_tuple = ('Hello', ' ', 'world') s_like_tuple = ('Hello' ' ' 'world') print(s_tuple) >>>('Hello', ' ', 'world') print(s_like_tuple) >>>Hello world type(s_like_tuple) >>>str
注意,上例中s_like_tuple并不是一个元组,因为元素间没有逗号分隔符,这些元素间可以用空格间隔,也可以不要空格。使用type()查看,发现它就是一个str类型。我没查到这是啥原因,猜测或许()括号中的内容是被Python优化处理了。
这种方式看起来很快捷,但是,括号()内要求元素是真实字符串,不能混用变量,所以不够灵活。
4、常用的+号方式
str_1 = 'Hello world! ' str_2 = 'My name is Python猫.' print(str_1 + str_2) >>>Hello world! My name is Python猫. print(str_1) >>>Hello world!
5、join()拼接方式
str_list = ['Hello', 'world'] str_join1 = ' '.join(str_list) str_join2 = '-'.join(str_list) print(str_join1) >>>Hello world print(str_join2) >>>Hello-world