文档章节

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

木头释然
 木头释然
发布于 2018/07/23 11:21
字数 713
阅读 1W
收藏 75

阿里云携手百名商业领袖、技术大咖,带您一探行进中的数字新基建!>>>

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()这两种格式化方法都快得多。



 

© 著作权归作者所有

木头释然
粉丝 18
博文 9
码字总数 5035
作品 0
西青
其他
私信 提问
加载中

评论(6)

yuzhouliu
yuzhouliu
我想起了鲁迅写的,孔乙己问:你知道回字有几种写法吗?
拾光TM
拾光TM
第六七条没用过,哪天试试看,总结的不错
Carvendy
Carvendy
感谢总结
逸儿
喜欢 收藏
clouddyy
clouddyy
收藏
RafaelShin
RafaelShin
总结的很好,收藏了
你真的知道 Python 字符串怎么用吗?

作者 | 豌豆花下猫 责编 | 郭芮 Python 中字符串是由 Uniocde 编码的字符组成的不可变序列,它具备与其它序列共有的一些操作,例如判断元素是否存在、拼接序列、切片操作、求长度、求最值、求...

CSDN资讯
2018/12/30
0
0
[ Python入门教程 ] Python字符串数据类型及基本操作

字符串是Python的一种基本类型,字符串的操作包括字符串格式化输出、字符串的截取、合并,字符串的查找和替换等操作。 字符串定义 Python中有3种表示字符串的方法:单引号、双引号、三引号。...

osc_0jg1hma8
2018/02/24
8
0
Python 实现字符串反转的9种方法

在做leetcode的试题中,做到反转整数,就涉及到字符串反转,为了尽可能可以写出更多的方法,于是写下这篇文章 样例:如 a='123456789' 反转成 a='987654321' 第一种方法:使用字符串切片 >>...

osc_qr98xq3d
2018/09/18
3
0
Python 中字符串拼接的 N 种方法

原文出处:oschina. python拼接字符串一般有以下几种方法: ①直接通过(+)操作符拼接 s = 'Hello'+' '+'World'+'!'print(s) 输出结果:Hello World! 使用这种方式进行字符串连接的操作效率......

oschina.
2018/09/03
0
0
Python拼接字符串的7种方法

1、直接通过+操作: s = 'Python'+','+'你好'+'!' print(s) 打印结果: Python,你好! 2、通过join()方法拼接: 将列表转换成字符串 strlist=['Python', ',', '你好', '!'] print(''.j......

此生不换Yang
2018/08/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

web前端入门知识大全:系统路线,各类要点解析

一、WEB前端是什么? 使用HTML/CSS/JS以及更多的框架技术,编写网站页面、App应用、小程序、2D&3D游戏、Web VR&AR等应用,通过内容设计、交互动画、数据操作构建项目与用户的交互界面。前端开...

梦想编程
34分钟前
11
0
一个软件测试7年的程序员,讲述自己两年突破瓶颈的经验,关注这些能让你少走弯路。

突破自己的技术瓶颈并不是一蹴而就,还是需要看清楚一些东西,这里也有一些经验和见解跟大家分享一下。同样是职场人士,我也有我的经历和故事。在工作期间,我有过2年加薪7次的小小“战绩”(...

爱码小哥
43分钟前
8
0
ReentrantLock 读写锁

写写共享 读写互斥 写写互斥 适合读多的业务 提高效率 import java.util.concurrent.locks.ReentrantReadWriteLock;import java.util.concurrent.locks.ReentrantReadWriteLock.ReadLock;......

Joker上上签
45分钟前
19
0
IM即时通讯 时间处理1

function formatDate(now) { let date = new Date(now); let Y = date.getFullYear() + '-'; let M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getM......

lsy999
45分钟前
9
0
rust tokio mpsc 异步发送数据

启动两个异步任务,一个阻塞在键盘输入。一个间歇的读取通道,有数据就输出。在快速输入的时候会卡住,因为 mpsc 的 buffer 设置为了 5。 代码如下: use std::io;use tokio::task;use to...

Anunakee
46分钟前
16
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部