Python 字符串连接问题归结
一、概述
Python 字符串连接场景较为普遍。由于编者对 Java 等语言较为熟悉,常常将两者语法混淆。
加之,Python 语法较为灵活。例如,单单实现字符串连接,就有数种方法。在此,一并归结!
二、字符串的连接方式
2.1 类 Java 式
hello = 'hello' + ' python'
使用场景:
适用于字符串相连。
特点:
之所以说python 中使用 + 进行字符串连接的操作效率低下,是因为python中字符串是不可变的类型,使用 + 连接两个字符串时会生成一个新的字符串,生成新的字符串就需要重新申请内存,当连续相加的字符串很多时(a+b+c+d+e+f+...) ,效率低下就是必然的了
2.2 join 方法
listStr = ['hello', ' python']
hello = ''.join(listStr)
使用场景:
适用于字符串数组相连。
特点:
使用略复杂,但对多个字符进行连接时效率高,只会有一次内存的申请。
而如果是对list的字符进行连接的时候,这种方法必须是首选
注意:
若使用 join 进行两个字符串的连接,会出现意想不到的问题:
不过也不难理解,join 接受 iterable 的对象。
若向 join 传递字符串,Python 会将其解析成单个的字符再进行连缀,然后,返回连缀后的字符串 tuple。
2.3 格式化
hello = '%s %s' % ('hello', ' python')
特点:
这种方法较为常用
2.4 "," 连接
hello = 'hello', ' python'
返回的结果是 tuple
三、性能比较
参见文章:
[python字符串连接的三种方法及其效率、适用场景详解][1]
[1]: http://www.cnblogs.com/chenjingyi/p/5741901.html
参考文章:
[python字符串连接的N种方式][http://www.cnblogs.com/dream397/p/3925436.html]
*此文在我的 Github Pages 上同步发布,地址为:Python 字符串连接问题归结
Python 字符串连接问题归结的更多相关文章
- 关于python字符串连接的操作
python字符串连接的N种方式 注:本文转自http://www.cnblogs.com/dream397/p/3925436.html 这是一篇不错的文章 故转 python中有很多字符串连接方式 ...
- python 字符串连接
字符串连接 方法1: 用字符串的join方法 a = ['a','b','c','d']content = ''content = ''.join(a)print content 方法2: 用字符串的 ...
- python字符串连接的三种方法及其效率、适用场景详解
python字符串连接的方法,一般有以下三种:方法1:直接通过加号(+)操作符连接website=& 39;python& 39;+& 39;tab& 39;+& ...
- Python字符串连接的5种方法
总结了一下Python字符串连接的5种方法: 加号 第一种,有编程经验的人,估计都知道很多语言里面是用加号连接两个字符串,Python里面也是如此直接用 "+" 来连接两个字符串: ...
- python字符串连接的N种方式
python中有很多字符串连接方式,今天在写代码,顺便总结一下: 最原始的字符串连接方式:str1 + str2 python 新字符串连接语法:str1, str2 奇怪的字符串方式:str1 st ...
- python字符串连接方式(转)
在python中有很多字符串连接方式,今天就在这里具体总结一下: ①.最原始的字符串连接方式:str1 + str2②.python 新字符串连接语法:str1, str2③.奇怪的字符串方式:str ...
- Python学习笔记--Python字符串连接方法总结
声明: 这些总结的学习笔记,一部分是自己在工作学习中总结,一部分是收集网络中的知识点总结而成的,但不到原文链接.如果有侵权,请知会,多谢. python中有很多字符串连接方式,总结一下: 1)最原始的 ...
- Python字符串连接方式
python中有很多字符串连接方式,总结一下: 1 最原始的字符串连接方式:str1 + str22 python 新字符串连接语法:str1, str23 奇怪的字符串方式:str1 str24 % ...
- python字符串连接的N种方式总结
python中有很多字符串连接方式,今天在写代码,顺便总结一下: 最原始的字符串连接方式:str1 + str2python 新字符串连接语法:str1, str2奇怪的字符串方式:str1 str2 ...
随机推荐
- Tutorial : How to Create a Border Glow Effect in JavaFX
http://blog.idrsolutions.com/2014/02/tutorial-create-border-glow-effect-javafx/ ———————————————————— ...
- 用TortoiseSVN忽略文件或文件夹(ignore)(网络摘抄记录)
Android项目需要协同一起开发时,就需要保证项目同步完整性.SVN忽略文件列表:.gradle .idea build local.properties *.iml app/*.iml app/b ...
- java算法-数学之美一
巧用数学的思想来解决程序算法问题,这样的代码如诗般优美.通过数学思想来看问题,也能将程序简单化.“斐波那契数列”对于java程序员来说一定不陌生.当然这个问题的解决方案也有很多.用一个例子说明数学思想 ...
- cout显示Mat类对象报错Access Violation
AV(Access Violation)错误:非法访问. image_match.exe 中的 0x0000002a 处有未经处理的异常: 0xC0000005: Access violation 程 ...
- node读写Excel操作
目支持写Excel的node.js模块: node-xlsx: 基于Node.js解析excel文件数据及生成excel文件: excel-parser: 基于Node.js解析excel文件数据,支 ...
- C# 文件读写操作整理
http://www.cnblogs.com/wangshenhe/archive/2012/05/09/2490438.html
- npm安装express 公司上网设置代理
异常: 0 info it worked if it ends with ok1 verbose cli [ 'C:\\Program Files (x86)\\nodejs\\\\node.exe' ...
- LINUX下搭建JAVA的开发环境
LINUX下搭建JAVA的开发环境 (2009-07-13 10:04:13) 下面就将Linux下JAVA开发环境的搭建详细道来: 1.Linux下JDK的安装 至于下载JDK的二进制可执行 ...
- JZOJ.5257【NOIP2017模拟8.11】小X的佛光
Description
- 160707、Tomcat 使用 c3p0连接池
Tomcat 中Jndi是使用Tomcat自带的连接池,由于客户要求,抛弃Tomcat自带的连接池.使用c3p0 .经过几个小时调试,解决方案如下: 环境:Tomcat 6 下面来看Jndi 与 c3 ...