Python3,实用技巧之:三类(7种)拼接字符串方式

2023-11-14

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方式。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python3,实用技巧之:三类(7种)拼接字符串方式 的相关文章

随机推荐