在程序中,经常会遇到字符串拼接的情况,本文整理了用 python 进行字符串拼接的几种方式,教你如何优雅的拼接字符串。

1. 直接拼接

s = "Hello" "World"
print(s)
# 输出:HelloWorld

两个字符串直接写一起,会视为字符串拼接。

但是它只能拼接字符串常量,不能拼接变量。类似如下写法,是不允许的,会报语法错误。

a = "World"
s = "Hello" a   # 语法错误

所以我感觉这种方法简单归简单,但没什么用。

2. 加号拼接

这种用 + 拼接字符串的方法简单方便,是最常用的方法之一了。

a = "Hello"
b = "World"
s = a + " " + b + "!"
print(s)
# 输出:Hello World!

不过这种方法用起来有点不方便的地方在于

  1. 只能拼接字符串,如果有某个变量是数字,必须先转成字符串才能继续拼接。

    a = 1
    s1 = "变量a的值为" + a        # 错误
    s2 = "变量a的值为" + str(a)    # 正确
    # 字符串 a 为数字,需要通过 str(a) 转成字符串以后才能进行拼接
  2. 如果变量较多,字符串拼接的代码看着会比较混乱不直观。

3. 逗号

如果是使用 print 函数来打印一些信息的话,可以通过逗号 , 来进行输出内容的拼接。

a = 1
print("Hello", a, "World")
# 输出:Hello 1 World

这种方法会依次打印 print 括号里的内容,并且在每个变量字符串之间自动添加空格,并在最后添加换行符。

这种方法在打印一些内容的时候非常好用,相比于加号 + 拼接字符串,它更加方便,而且不需要手动把其他数据类型转成字符串。

缺点就是,如果是多线程的话,不同线程打印的内容可能会交错混乱。

4. join

在将数组内容拼接成字符串的话,正常需要来一个 for 循环,但是这个用 join 函数可以很方便的实现。

alist = ["hello", "world", "!!!"]
s = "*".join(alist)
print(s)
# 输出:hello*world*!!!

代码 "*".join(alist) 中的 "*" 表示数组元素之间用什么字符来拼接,同理可以换成 空格,逗号等等,如果不需要其他字符,可以换成空字符串。

5. format

str.format() 是一种格式化字符串的函数,功能比较强大,用法也很多,这里简单说几种常用的用法。

# 不设置指定位置,按默认顺序
s = "{} {}".format("hello", "world")    
# 'hello world'
# 设置指定位置
s1 = "{0} {1}".format("hello", "world")  
# 'hello world'

s2 = "{1} {0} {1}".format("hello", "world")
# 'world hello world'
# 设置参数
s = "网站名:{name}, 地址 {url}".format(name="机灵鹤", url="smartcrane.tech")
# 网站名:机灵鹤, 地址 smartcrane.tech

6. f-strings

f-strings 是我特别喜欢用的一种拼接字符串的方法。就是在字符串前面加 f ,然后字符串中大括号 {} 内的部分就可以当作变量来解析。

name = "机灵鹤"
age = 4
s = f"His name is {name}, he's {age} years old."
# "His name is 机灵鹤, he's 4 years old."

非常方便。


大家还有什么比较好用的字符串拼接的方法,欢迎补充分享。

最后修改:2021 年 10 月 12 日 10 : 41 AM
如果觉得我的文章对你有用,请随意赞赏