Python 中10种拼接字符串方法总结🎉🎉🎉
目录
今天才知道原来python里面拼接字符串有这么多方式,孤陋寡闻了😭😭😭
在这里记录一下,方便查阅
话不多说,我们上代码!!!
1. 加号连接
str1, str2 = 'xiao', 'bai'
str3 = str1 + ' ' + str2
print(str3) # xiao bai
2. 逗号连接
注意:
1.在用逗号拼接时,会自动加入 空格
2.仅能用于 输出,因为这里类型变为了 元组(tuple), 有局限性
str1, str2 = 'xiao', 'bai'
print(str1, str2) # xiao bai
print(type((str1, str2))) # <class 'tuple'>
3. 使用 % 占位符
类似 C 语言 语法,
在 Python 2.6 以前,% 操作符是唯一一种格式化字符串的方法,它也可以用于连接字符串。
这里再额外拓展一下字符串和其他类型变量拼接
str1, str2 = 'xiao', 'bai'
# 直接输出
print('%s %s' % (str1, str2)) # xiao bai
num = 10
print('%s %s %d' % (str1, str2, num)) # xiao bai 10
# 赋值
str3 = 'xiao %s' % str2
print(str3) # xiao bai
str4 = '%s %s' % (str1, str2)
print(str4) # xiao bai
4. 使用 format() 方法
是 Python 2.6 中出现的一种代替 % 操作符的字符串格式化方法,同样可以用来连接字符串。
str1, str2 = 'xiao', 'bai'
print('{} {}'.format(str1, str2)) # xiao bai
# format() 方法输出还可以指定顺序
print('{1} {0}'.format(str1, str2)) # bai xiao
5 .f-string方式
Python 3.6 中引入, 是 %操作符 和 format() 方法的进化版
str1, str2 = 'xiao', 'bai'
str3 = f"{str1} {str2}" # xiao bai
6.使用 * 操作符
通过乘法进行拼接,有 局限性
str1 = 'xiao'
str2 = str1 * 3 # xiaoxiaoxiao
print(str2)
7. join函数
将包含多个字符串的可迭代对象(字符串、元组、列表),转为用分隔符sep连接的字符串, 功能强大
但是不适用于拼接两个字符串
- 字符串
- 列表
- 元组
- 字典
str1, str2 = 'xiao', 'bai'
# 字符串
str0 = '*'.join(str2) # b*a*i
# 列表
lst = ['xiao', 'bai']
str3 = ' '.join(lst) # xiao bai
# 元组
lst2 = ('xiao', 'bai')
str4 = ' '.join(lst2) # xiao bai
# 字典
dic = {1: 'xiao', 2: 'bai'}
str5 = ' '.join(str(dic.keys())) # d i c t _ k e y s ( [ 1 , 2 ] )
str6 = ' '.join(str(dic.values())) # d i c t _ v a l u e s ( [ ' x i a o ' , ' b a i ' ] )
str7 = ' '.join(str(dic.items())) # d i c t _ i t e m s ( [ ( 1 , ' x i a o ' ) , ( 2 , ' b a i ' ) ] )
dic = {'1': 'xiao', '2': 'bai'}
str8 = ' '.join(dic.keys()) # 1 2
str9 = ' '.join(dic.values()) # xiao bai
# 注意不能这样打印全部字典
str10 = ' '.join(dic.items()) # TypeError: sequence item 0: expected str instance, tuple found
8.多行字符串自动拼接
但是不适用于变量的拼接,可以在字符串过多时使用
str1 = 'xiao'\
'bai'\
'mao'
print(str1) # xiaobaimao
str2 = ('xiao'
'bai'
'mao')
print(str2) # xiaobaimao
print(type(str2)) # <class 'str'>
9.通过 string 模块中的Template对象拼接
Template的实现方式是首先通过Template初始化一个字符串对象str1,在创建对象str1时,在字符串中使用 ${变量名} 的方式来给拼接内容占位。
也可以省略 {},直接 $ 变量名,只是没有 {} 时变量名后面一定要有空格,且可读性不如有 {} 的好。
通过调用t对象的substitute或safe_subsititute方法,将拼接内容通过关键字参数的方式依次传递进去,实现在指定的位置拼接字符串。
这种方法与上面的format()方法一样,不管传入的拼接内容是什么数据类型,统统都可以拼接。
from string import Template
str1 = Template("Hello, " '${s1} ${s2}')
str_end = str1.substitute(s1='xiao', s2='bai') # Hello, xiao bai
print(str_end)
10.通过 os 模块里面 os.path.join函数
这个方法并不是专门拼接字符串而是拼接路径的,了解即可
import os
str1 = os.path.join('xiao', 'bai') # xiao\bai
错了,现在我们正确的打开 os 模块
os.path.join函数将多个路径组合后返回,使用语法为:
os.join.path(path1 [,path2 [,…] ] )
最后 ✨✨✨
想要了解 Python中字符串的其他操作有哪些,可移步Zero-py系列:字符串处理概览
🌈Zero-Py系列(Python基础知识部分)创建是想要对Python基础语法进行一个全面的总结,便于大家系统的查找相关知识点和一些技巧,由于想要尽量全面展示知识点,所以分为几个模块来阐述
如果想要对总体知识进行检索,可以跳转链接: Python基本知识点以及一些处理技巧概览(📌总体大纲=>可自由检索)进行查看
如果有什么不足或者疑问,欢迎留言讨论🥰🥰🥰