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解决鸡兔同笼问题的方法
Dec 20 Python
python中getaddrinfo()基本用法实例分析
Jun 28 Python
python类中super()和__init__()的区别
Oct 18 Python
python 读写中文json的实例详解
Oct 29 Python
django中的HTML控件及参数传递方法
Mar 20 Python
对Python中的@classmethod用法详解
Apr 21 Python
解决已经安装requests,却依然提示No module named requests问题
May 18 Python
Python根据指定日期计算后n天,前n天是哪一天的方法
May 29 Python
Python操作qml对象过程详解
Sep 26 Python
python 实用工具状态机transitions
Nov 21 Python
浅析python字符串前加r、f、u、l 的区别
Jan 24 Python
Python+OpenCV实现图片中的圆形检测
Apr 07 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
PHPCMS忘记后台密码的解决办法
2016/10/30 PHP
PHP实现根据数组的值进行分组的方法
2017/04/20 PHP
php把字符串指定字符分割成数组的方法
2018/03/12 PHP
PHP工厂模式简单实现方法示例
2018/05/23 PHP
laravel5.6 框架邮件队列database驱动简单demo示例
2020/01/26 PHP
JQuery 图片延迟加载并等比缩放插件
2009/11/09 Javascript
jquery事件的ready()方法使用详解
2015/11/11 Javascript
JavaScript中的ParseInt("08")和“09”返回0的原因分析及解决办法
2016/05/19 Javascript
js实现前端分页页码管理
2017/01/06 Javascript
深入理解javascript中的 “this”
2017/01/17 Javascript
Node.js中流(stream)的使用方法示例
2017/07/16 Javascript
AngularJS实现图片上传和预览功能的方法分析
2017/11/08 Javascript
vue forEach循环数组拿到自己想要的数据方法
2018/09/21 Javascript
javascript中的event loop事件循环详解
2018/12/14 Javascript
JS使用栈判断给定字符串是否是回文算法示例
2019/03/04 Javascript
JS中的算法与数据结构之常见排序(Sort)算法详解
2019/08/16 Javascript
vue 组件内获取actions的response方式
2019/11/08 Javascript
vue-cli —— 如何局部修改Element样式
2020/10/22 Javascript
Python实现的调用C语言函数功能简单实例
2019/03/13 Python
python matplotlib 画dataframe的时间序列图实例
2019/11/20 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧装饰器信号与槽详细使用方法与实例
2020/03/06 Python
解决flask接口返回的内容中文乱码的问题
2020/04/03 Python
什么是python的自省
2020/06/21 Python
Django restful framework生成API文档过程详解
2020/11/12 Python
appium+python自动化配置(adk、jdk、node.js)
2020/11/17 Python
GOOD AMERICAN官网:为曲线性感而设计
2017/12/28 全球购物
物理专业大学生职业生涯规划书
2014/02/07 职场文书
厂长岗位职责
2014/02/19 职场文书
大学生万能检讨书范例
2014/10/04 职场文书
2014党员整改措施思想汇报
2014/10/07 职场文书
浪漫婚礼主持词开场白
2015/11/24 职场文书
2016年乡镇综治宣传月活动总结
2016/03/16 职场文书
感恩信:写给爸爸妈妈的一封感谢信
2019/09/12 职场文书
python制作图形界面的2048游戏, 基于tkinter
2021/04/06 Python
每日六道java新手入门面试题,通往自由的道路
2021/06/30 Java/Android
Win11怎么添加用户?Win11添加用户账户的方法
2022/07/15 数码科技