可能是最全面的 Python 字符串拼接总结

在 Python 中字符串连接有多种方式,这里简单做个总结,应该是比较全面的了,方便以后查阅。

加号连接

第一种,通过+号的形式:

>>> a, b = 'hello', ' world'
>>> a + b
'hello world'

逗号连接

第二种,通过,逗号的形式:

>>> a, b = 'hello', ' world'
>>> print(a, b)
hello  world

但是,使用,逗号形式要注意一点,就是只能用于print打印,赋值操作会生成元组:

>>> a, b
('hello', ' world')

直接连接

第三种,直接连接中间有无空格均可:

print('hello'         ' world')
print('hello''world')

%

第四种,使用%操作符。

在 Python 2.6 以前,% 操作符是唯一一种格式化字符串的方法,它也可以用于连接字符串。

print('%s %s' % ('hello', 'world'))

format

第五种,使用format方法。

format 方法是 Python 2.6 中出现的一种代替 % 操作符的字符串格式化方法,同样可以用来连接字符串。

print('{}{}'.format('hello', ' world')

join

第六种,使用join内置方法。

字符串有一个内置方法join,其参数是一个序列类型,例如数组或者元组等。

print('-'.join(['aa', 'bb', 'cc']))

f-string

第七种,使用f-string方式。

Python 3.6 中引入了 Formatted String Literals(字面量格式化字符串),简称 f-stringf-string% 操作符和 format 方法的进化版,使用 f-string 连接字符串的方法和使用 %操作符、format 方法类似。

>>> aa, bb = 'hello', 'world'
>>> f'{aa} {bb}'
'hello world'

*

第八种,使用*操作符。

>>> aa = 'hello '
>>> aa * 3
'hello hello hello '

小结

连接少量字符串时

推荐使用+号操作符。

如果对性能有较高要求,并且python版本在3.6以上,推荐使用f-string。例如,如下情况f-string可读性比+号要好很多:

a = f'姓名:{name} 年龄:{age} 性别:{gender}'
b = '姓名:' + name + '年龄:' + age + '性别:' + gender

连接大量字符串时

推荐使用 joinf-string 方式,选择时依然取决于你使用的 Python 版本以及对可读性的要求。

参考链接

你所不知道的Python | 字符串连接的秘密

https://juejin.im/post/5b350624f265da5954426713

来源: 枫恋寒 链接: https://segmentfault.com/a/1190000015475309

*声明:推送内容及图片来源于网络,部分内容会有所改动,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。

- END -

原文发布于微信公众号 - 马哥Linux运维(magedu-Linux)

原文发表时间:2018-07-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏九彩拼盘的叨叨叨

JavaScript 数组练习题之实现

** 题 3:改变传入的数组,将数组中第 n(从 0 开始算 ) 个元素放到数组的开头 **

12110
来自专栏曾大稳的博客

c基础

11010
来自专栏小樱的经验随笔

C/C++中peek函数的原理及应用

C++中的peek函数   该调用形式为cin.peek() 其返回值是一个char型的字符,其返回值是指针指向的当前字符,但它只是观测,指针仍停留在当前位置,...

31350
来自专栏web编程技术分享

小兔JS教程(五) 简单易懂的JSON入门

36270
来自专栏xingoo, 一个梦想做发明家的程序员

const指南

基本词义  意思就就是说利用const进行修饰的变量的值在程序的任意位置将不能再被修改,就如同常数一样使用!  使用方法 const int a=1;//这里定...

204100
来自专栏非著名程序员

Java 反射基础(下)

? 投稿作者:芮成兵/csdn 原文链接: http://blog.csdn.net/My_TrueLove/article/details/51306921...

26460
来自专栏文渊之博

小议隐式转换引起的问题

隐式转换(Implicit conversion) ,这个情况每个程序员都或多或少的遇到过,这里我结合实际情况简单描述下常见的问题以及如何解决并阐述下原理。 所...

20890
来自专栏Java帮帮-微信公众号-技术文章全总结

Java基础-day01-基础题

1. 简述java语言,具有哪些特性? (1).java语言是简单的 java语言是和c++语言类似的,其次java中丢弃了c++中一些难理解的特性,比如运算符...

29340
来自专栏强仔仔

AngularJS系列之表达式

这节介绍一下AngularJS中表示式的用法。使用表达式可以把数据绑定到HTML中去,使用起来非常方便。不过在使用之前得先引用AngularJS文件,这个文件可...

19370
来自专栏noteless

[三]java8 函数式编程Stream 概念深入理解 Stream 运行原理 Stream设计思路

        流不是存储元素的数据结构;相反,它通过一个计算操作的管道,从一个数据源,如数据结构、数组、生成器函数或i/o通道中传递元素

45150

扫码关注云+社区

领取腾讯云代金券