问题:将许多小字符串合并成一个大的字符串

解决方案:

1、针对少数量的字符串:+

2、针对大量的字符串对象的连接,更高效的方法:join()

3、更加复杂的字符串:format()

>>> parts=['Is','Chicago','Not','Chicago?']
>>> ','.join(parts)
'Is,Chicago,Not,Chicago?'
>>> a='Is Chicago'
>>> b='Not Chicago?'
>>> '{} {}'.format(a,b)
'Is Chicago Not Chicago?'
>>> '{}{}'.format(a,b)
'Is ChicagoNot Chicago?'
>>> '{}*{}'.format(a,b)
'Is Chicago*Not Chicago?'
>>> '{}*&%${}'.format(a,b)
'Is Chicago*&%$Not Chicago?'
>>> a+' '+b
'Is Chicago Not Chicago?'
>>> 'Hello' 'World'
'HelloWorld'
>>> print (a,b,sep=':') #更好的使用方法
Is Chicago:Not Chicago?

一个技巧:利用生成器表达式在将数据转换为字符串的同时完成连接操作

>>> data=['AQSC',50,91.2]
>>> ','.join(str(d) for d in data)
'AQSC,50,91.2'
>>>

最后,但也是最重要的是,若我们编写的代码要从许多短字符串中构建输出,则应考虑编写生成器函数,通过yield关键字生成字符串片段;

# example.py
#
# Example of combining text via generators def sample():
yield "Is"
yield "Chicago"
yield "Not"
yield "Chicago?" # (a) 使用join()将他们简单的连接起来
text = ''.join(sample())
print(text)
print('======================')
# (b) 将这些片段重定向到I/O
import sys
for part in sample():
sys.stdout.write(part)
sys.stdout.write('\n')
print('**************************')
# (c) 以混合的方式将I/O操作智能化地结合在一起
def combine(source, maxsize):
parts = []
size = 0
for part in source:
parts.append(part)
size += len(part)
if size > maxsize:
yield ''.join(parts)
parts = []
size = 0
yield ''.join(parts) for part in combine(sample(), 32768):
sys.stdout.write(part)
sys.stdout.write('\n')
>>> ================================ RESTART ================================
>>>
IsChicagoNotChicago?
======================
IsChicagoNotChicago?
**************************
IsChicagoNotChicago?
>>>

【python cookbook】【字符串与文本】14.字符串连接及合并的更多相关文章

  1. SQL server 存储过程 C#调用Windows CMD命令并返回输出结果 Mysql删除重复数据保留最小的id C# 取字符串中间文本 取字符串左边 取字符串右边 C# JSON格式数据高级用法

    create proc insertLog@Title nvarchar(50),@Contents nvarchar(max),@UserId int,@CreateTime datetimeasi ...

  2. C# 取字符串中间文本 取字符串左边 取字符串右边

    好像是第二种效率高一点,取str字符串中123左边的所有字符:第一种Between(str,"","123"),而第二种是Between(str,null,&q ...

  3. python书籍推荐:Python Cookbook第三版中文

    所属网站分类: 资源下载 > python电子书 作者:熊猫烧香 链接:http://www.pythonheidong.com/blog/article/44/ 来源:python黑洞网 内容 ...

  4. Python文本和字符串常用操作

    ## 字符串分割 line = "This is my love!" fields = line.split(' ') print(fields) # ['This', 'is', ...

  5. 13、如何拆分含有多种分隔符的字符串 14、如何判断字符串a是否以字符串b开头或结尾 15、如何调整字符串中文本的格式 16、如何将多个小字符串拼接成一个大的字符串

    13.如何拆分含有多种分隔符的字符串 import re s = "23:41:2314\1234#sdf\23;" print(re.split(r'[#:\;]+',s))   ...

  6. 《Python CookBook2》 第一章 文本 - 过滤字符串中不属于指定集合的字符 && 检查一个字符串是文本还是二进制

    过滤字符串中不属于指定集合的字符 任务: 给定一个需要保留的字符串的集合,构建一个过滤函数,并可将其应用于任何字符串s,函数返回一个s的拷贝,该拷贝只包含指定字符集合中的元素. 解决方案: impor ...

  7. <NET CLR via c# 第4版>笔记 第14章 字符,字符串和文本处理

    14.1 字符 三种数值类型与 Char 实例的相互转换: static void Main() { Char c; Int32 n; //方法一: 通过C#转型(强制类型转换)实现数字与字符的相互转 ...

  8. 【Python】Java程序员学习Python(七)— 文本类详解(字符串、str)

    如果一个女孩子喜欢看龙猫,那么请珍惜她,呵护她 任何一门语言,字符串总是最基本也是最需要掌握的一个变量,想想入门的Hello World,输出的就是字符串. 官方文档:https://docs.pyt ...

  9. python文本 去掉字符串前后空格

    python文本 去掉字符串前后空格 场景: 去掉字符串前后空格 可以使用strip,lstrip,rstrip方法 >>> a="abc".center (30 ...

  10. python字符串与文本操作(一)

    1.一个字符串分割为多个字段,但是分隔符 (还有周围的空格) 并不是固定的 #string 对象的split()方法只适应于非常简单的字符串分割情形,它并不允许有 多个分隔符或者是分隔符周围不确定的空 ...

随机推荐

  1. Date and Time Pattern

    The following examples show how date and time patterns are interpreted in the U.S. locale. The given ...

  2. 微信JS SDK使用权限签名算法

    jsapi_ticket 生成签名之前必须先了解一下jsapi_ticket,jsapi_ticket是公众号用于调用微信JS接口的临时票据.正常情况下,jsapi_ticket的有效期为7200秒, ...

  3. WPF基础知识、界面布局及控件Binding

    WPF是和WinForm对应的,而其核心是数据驱动事件,在开发中显示的是UI界面和逻辑关系相分离的一种开放语言.UI界面是在XAML语言环境下开发人员可以进行一些自主设计的前台界面,逻辑关系还是基于c ...

  4. 诊断SQLSERVER问题常用的日志

    这里主要有两个: (1)Windows事件日志 (2)SQLSERVER ErrorLog 1.Windows事件日志 Event Log 作为一个Windows开启和管理的服务程序,Windows会 ...

  5. Python基础 (yield生成器)

    如果在一个函数中使用了yield,那么这个函数实际上生成的是一个生成器函数 ,返回的是一个generator object.生成器是实现迭代的一种方式 特点: 其实返回的就是可以的迭代对象 和迭代的方 ...

  6. Python模块 (psutil)

    psutil psutil是Python中一个系统信息检索模块,可以获取(系统.CPU.内存.网络.磁盘)等信息,可以应用于系统的监控.健康状态检查,等同于shell中的ps.free.top.df功 ...

  7. Baseline管理

    1.创建基线 SQL> exec dbms_workload_repository.create_baseline(start_snap_id=>,end_snap_id=>,bas ...

  8. java学习材料

    java资料大全 http://zz563143188.iteye.com/ it男视野扩展资料 HTTP://WLSAM168.400GB.COM 最全 spring mvc http://jinn ...

  9. 解决本地tomcat服务器内存不足问题

    2014-6-25 9:47:48 org.apache.coyote.http11.Http11Processor process严重: Error processing requestjava.l ...

  10. TIJ——Chapter One:Introduction to Objects

    ///:~容我对这个系列美其名曰"读书笔记",其实shi在练习英文哈:-) Introduction to Objects Object-oriented programming( ...