Python3,实用技巧之:三类(7种)拼接字符串方式
1、引言
因为平时善于总结整理,所以,在写博客的时候,就信手拈来…
自夸的人多了去,但是,像我这种,凤毛麟角。
言归正传,
今天我们来搞一搞python3中的拼接字符串小技巧,
虽然是小技巧,但是很实用,可能除了这几种技巧,再找不出来别的技巧了。
Python3中的字符串拼接方式,总的来说三大类,
- 格式化类:%,format(),template
- 拼接类:+,(),join()
- 插值类:f-string
接下来,我们就仔细瞧一瞧,看一看,反正不吃亏!
2、格式化类
2.1 来自C的%方式
%格式化字符串的方式继承自古老的C语言,很多编程语言都有类似的实现。
比如%s是一个占位符,待仅代表一段字符串,并不是拼接的实际内容,而实际内容是在一个单独的%后面,放在一个元组里。
实例
#撸码第一课,hello word
print('%s %s' %('Hello','world'))
输出结果
>>> Hello world
注:
- %d : 代表一个整数
- %f :代表一个浮点数
- %x : 代表一个十六进制数
2.2 format 拼接方式
format用起来确实很简单,也是我比较喜欢的一个方式之一。
下面就直接看例子
- 实例一、简洁版
#写一句自我介绍
s1 = 'Hello {}! My name is {}.'.format('World','Carl_DJ')
print(s1)
输入结果
>>> Hello World! My name is Carl_DJ.
- 实例二、雅典娜版
s2 = 'Hello {0}! My name is {1}.'.format('World','Carl_DJ')
print (s2)
s3 = 'Hello {name1}! My name is {name2}.'.format(name1 = 'Word',name2 = 'Carl_DJ')
print(s3)
输入结果
>>> Hello World! My name is Carl_DJ.
我们可以看到,以上两种写法,最后的输入结果都是一样的,
唯一的区别就是赋值的方式,
针对雅典娜版的两个传值方式,建议使用key-value的方式,因为撸码时间长,眼睛容易跟不上,使用key-value更直观。
2.3 面向对象模板拼接
这种拼接方式,有点类似于Django的模板语言渲染字符串,但是,很啰嗦,我们看例子
如果你足够了解Django
from string import Template
#定义
s = Template('${s1} ${s2}!')
#输出
print(s.safe_substitute(s1 = 'Hello',s2 = 'world'))
输出结果
>>> Hello world!
看到这里,是不是真的觉得很啰嗦,明明一个符号的事情,为啥要搞得这么复杂…
3、拼接类
3.1 常用的 + 方式
这种方式是最直观的,最简便的,最易懂的,
因为凡事都可以 +,但是长度不能超过20。
实例
str_1 = 'Hello world!'
str_2 = 'My name is Carl_DJ.'
print(str_1 + str_2)
输出结果
>>> Hello world! My name is Carl_DJ.
3.2 类似元组的方式
实例
s_tuple = ('Hello', ' ', 'world')
print (s_tuple)
s_like_tuple = ('Hello' ' ' 'world')
print (s_like_tuple)
输入结果
- s_tuple:
>>>'Hello', ' ', 'world'
- s_like_tuple:
>>>Hello world
这里两个值为什么输出的不一样,因为:
s_like_tuple 并不是一个元组,因为元素之间没有逗号分隔,这些元素可以用空格间隔,也可以不要空格。
3.3 join方法
str对象自带的join方法接收一个序列参数,可以实现拼接。
在拼接时元素如果不是字符串,需要先转换一下。
所以这种方法比较适用于连接序列对象中的元素,并设置统一的间隔。
实例
#定义str_list
str_list = ['Hello','world']
#str_join1的拼接
str_join1 = ''.join(str_list)
#输出
print(str_join1)
#str_join2的拼接
str_join2 = '-'.join(str_list)
#输出
print(str_join2)
输出结果
- str_join1:
>>>Hello world
- str_join2:
>>>Hello-world
4、插值类
4.1 f-string方式
实例
name = 'world'
My_name = 'Carl_DJ'
words = f'Hello {name}! My name is {My_name}.'
print(words)
输出结果
>>> Hello world! My name is Carl_DJ.
这种方式就是,在字符串前面加上f,字符串变量存放于{}内。
在可读性上秒杀format方式,在处理长字符串的拼接时,速度与join方式相当。
尽管如此,这种方式由于有一个标识符f,所以并不是所有的大佬都喜欢这种方式。
我就不一样,我就喜欢f-string这种方式。
但是,各有所爱。只要能完美的,优雅的,简洁的在代码中展示,不出错,就是好代码。
5、总结
所以,最后一句话总结:
- 当处理字符串列表等序列结构时采用join方式 ;
- 当拼接长度不超过20时选择 + ;
- 当字符串长度超过20时,推荐f-string方式;
我是小鱼:
- CSDN 博客专家;
- 阿里云 专家博主;
- 51CTO博客专家;
- 51认证讲师等;
- 认证金牌面试官;
- 职场面试及培训规划师;
- 多个国内主流技术社区的认证专家博主;
- 多款主流产品(阿里云等)测评一、二等奖获得者;
关注我,带你学习更多更专业更前言的Python技术。
- 点赞
- 收藏
- 关注作者
评论(0)