Python 中字符串拼接的多种方法


Posted in Python onJuly 30, 2018

python拼接字符串一般有以下几种方法:

①直接通过(+)操作符拼接

s = 'Hello'+' '+'World'+'!'
print(s)

输出结果: Hello World!

使用这种方式进行字符串连接的操作效率低下,因为python中使用 + 拼接两个字符串时会生成一个新的字符串,生成新的字符串就需要重新申请内存,当拼接字符串较多时自然会影响效率。

②通过str.join()方法拼接

strlist=['Hello',' ','World','!']
print(''.join(strlist))

输出结果: Hello World!

这种方式一般常使用在将集合转化为字符串,''.join()其中''可以是空字符,也可以是任意其他字符,当是任意其他字符时,集合中字符串会被该字符隔开,例如:

​strlist=['Hello',' ','World','!']
print(','.join(strlist))

输出结果: Hello, ,World,!

③通过str.format()方法拼接

s='{} {}!'.format('Hello','World')
print(s)

输出结果: Hello World!

通过这种方式拼接字符串需要注意的是字符串中{}的数量要和format方法参数数量一致,否则会报错。

④通过(%)操作符拼接

s = '%s %s!' % ('Hello', 'World')
print(s)

输出结果: Hello World!

这种方式与str.format()使用方式基本一致。

⑤通过()多行拼接

s = (
  'Hello'
  ' '
  'World'
  '!'
)
print(s)

输出结果: Hello World!

python遇到未闭合的小括号,自动将多行拼接为一行。

⑥通过string模块中的Template对象拼接

from string import Template
s = Template('${s1} ${s2}!') 
print(s.safe_substitute(s1='Hello',s2='World'))

输出结果: Hello World!

Template的实现方式是首先通过Template初始化一个字符串。这些字符串中包含了一个个key。通过调用substitute或safe_subsititute,将key值与方法中传递过来的参数对应上,从而实现在指定的位置导入字符串。这种方式的好处是不需要担心参数不一致引发异常,如:

from string import Template
s = Template('${s1} ${s2} ${s3}!') 
print(s.safe_substitute(s1='Hello',s2='World'))

输出结果: Hello World ${s3}!

⑦通过F-strings拼接

在python3.6.2版本中,PEP 498 提出一种新型字符串格式化机制,被称为“字符串插值”或者更常见的一种称呼是 F-strings, F-strings提供了一种明确且方便的方式将python表达式嵌入到字符串中来进行格式化:

s1='Hello'
s2='World'
print(f'{s1} {s2}!')

输出结果: Hello World!

在F-strings中我们也可以执行函数:

def power(x):
  return x*x
x=4
print(f'{x} * {x} = {power(x)}')

输出结果: 4 * 4 = 16

而且F-strings的运行速度很快,比%-string和str.format()这两种格式化方法都快得多。

总结

以上所述是小编给大家介绍的Python 中字符串拼接的多种方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
python改变日志(logging)存放位置的示例
Mar 27 Python
详谈python http长连接客户端
Jun 12 Python
python机器学习理论与实战(六)支持向量机
Jan 19 Python
使用Django和Python创建Json response的方法
Mar 26 Python
pandas 取出表中一列数据所有的值并转换为array类型的方法
Apr 11 Python
在matplotlib的图中设置中文标签的方法
Dec 13 Python
Python中使用双下划线防止类属性被覆盖问题
Jun 27 Python
python conda操作方法
Sep 11 Python
详解Python直接赋值,深拷贝和浅拷贝
Jul 09 Python
python中封包建立过程实例
Feb 18 Python
Python爬虫 简单介绍一下Xpath及使用
Apr 26 Python
Pygame游戏开发之太空射击实战敌人精灵篇
Aug 05 Python
TensorFlow Session会话控制&Variable变量详解
Jul 30 #Python
TensorFlow Session使用的两种方法小结
Jul 30 #Python
教你利用Python玩转histogram直方图的五种方法
Jul 30 #Python
对TensorFlow中的variables_to_restore函数详解
Jul 30 #Python
Python实现模拟浏览器请求及会话保持操作示例
Jul 30 #Python
tensorflow 打印内存中的变量方法
Jul 30 #Python
Python实现的多叉树寻找最短路径算法示例
Jul 30 #Python
You might like
php SQL防注入代码集合
2008/04/25 PHP
php生成的html meta和link标记在body标签里 顶部有个空行
2010/05/18 PHP
PHP写的加密函数,支持私人密钥(详细介绍)
2013/06/09 PHP
从PHP $_SERVER相关参数判断是否支持Rewrite模块
2013/09/26 PHP
php实现的短网址算法分享
2014/06/20 PHP
关于PHP通用返回值设置方法
2017/03/31 PHP
php往mysql中批量插入数据实例教程
2018/12/12 PHP
PDO::quote讲解
2019/01/29 PHP
PHP PDOStatement::execute讲解
2019/01/31 PHP
js前台判断开始时间是否小于结束时间
2012/02/23 Javascript
Node.js入门教程:在windows和Linux上安装配置Node.js图文教程
2014/08/14 Javascript
jquery制作 随机弹跳的小球特效
2015/02/01 Javascript
jQuery获取单击节点对象的方法
2016/06/02 Javascript
JS定时器实现数值从0到10来回变化
2016/12/09 Javascript
JS正则截取两个字符串之间及字符串前后内容的方法
2017/01/06 Javascript
Ajax异步获取html数据中包含js方法无效的解决方法
2017/02/20 Javascript
nodejs multer实现文件上传与下载
2017/05/10 NodeJs
jQuery:unbind方法的使用详解
2017/08/14 jQuery
node.js使用express框架进行文件上传详解
2019/03/03 Javascript
详解javascript中的Error对象
2019/04/25 Javascript
解决layui 三级联动下拉框更新时回显的问题
2019/09/03 Javascript
详解element上传组件before-remove钩子问题解决
2020/04/08 Javascript
[05:26]2014DOTA2西雅图国际邀请赛 iG战队巡礼
2014/07/07 DOTA
[01:31:22]Ti4 循环赛第四日附加赛LGD vs Mouz
2014/07/13 DOTA
[51:30]OG vs LGD 2018国际邀请赛淘汰赛BO3 第二场 8.26
2018/08/30 DOTA
讲解python参数和作用域的使用
2013/11/01 Python
Python编写打字训练小程序
2019/09/26 Python
Python文字截图识别OCR工具实例解析
2020/03/05 Python
基于python 取余问题(%)详解
2020/06/03 Python
python3爬虫中异步协程的用法
2020/07/10 Python
python/golang实现循环链表的示例代码
2020/09/14 Python
早晨薰衣草在线女性精品店:Morning Lavender
2021/01/04 全球购物
教师演讲稿开场白
2014/08/25 职场文书
带香烟到学校抽的检讨书
2014/09/25 职场文书
工作态度不端正检讨书
2014/10/04 职场文书
2016开学第一课心得体会
2016/01/23 职场文书