美文网首页慕课网实战学习笔记编程语言爱好者程序员
如何将多个小字符串拼接成一个大字符串

如何将多个小字符串拼接成一个大字符串

作者: SmallRookie | 来源:发表于2017-08-05 01:28 被阅读18次
实际案例

在设计某网络程序时,我们自定义了一个基于UDP的网络协议,按照固定次序向服务器传递一系列参数:
  hwDetect: "<0112>"
  gxDepthBits "<32>"
  gxResolution: "<1024x768>"
  gxRefresh: ''<60>"
  fullAlpha: "<1>"
  lodDist: "<100.0>"
  DistCull: "<500.0>"
在程序中我们将各个参数按次序收集到列表中:
["<0112>", "<32>", "<1024x768>", "<60>", "<1>", "<100.0>", "<500.0>"]
最终我们要把各个参数拼接成一个数据报进行发送:
"<0112><32><1024x768><60><1><100.0><500.0>>"

解决方案:

  • 方法一:迭代列表,连续使用‘+’操作依次拼接每一个字符串
  • 方法二:使用str.join(),更加快速的拼接列表中所有字符串
方法一

迭代列表,连续使用‘+’操作依次拼接每一个字符串,其代码如下:

# -*- coding: utf-8 -*-

pl = ["<0112>", "<32>", "<1024x768>", "<60>", "<1>", "<100.0>", "<500.0>"]
s = ""

for p in pl:
    s += p

print s

其输出结果为:

<0112><32><1024x768><60><1><100.0><500.0>

其实我们采用"+"进行字符串拼接,实际上是运算符重载,在字符串拼接时调用了str.__add__()。若有兴趣可查阅Python官方文档

方法二

使用str.join(),更加快速的拼接列表中所有字符串,其代码如下:

# -*- coding: utf-8 -*-

pl = ["<0112>", "<32>", "<1024x768>", "<60>", "<1>", "<100.0>", "<500.0>"]

s = "".join(pl)

print s

其输出结果如下:

<0112><32><1024x768><60><1><100.0><500.0>

对于方法一,若我们将方法一的中间结果打印输出,我们就会发现方法一存在很严重的问题,每一次字符串拼接操作Python的解释器都要进行内存的申请与回收,一旦所需拼接的字符串过多,其运行效率会大打折扣。

因此,我们对于处理大量字符串拼接操作推荐使用str.join()。为此,在这里再介绍一个关于str.join()的小技巧,其代码如下:

l = ["abc", 123, 'xyz']

# 通过生成器解析将每个元素转为str类型
s = "".join(str(x) for x in l)

print s

其运行结果如下:

abc123xyz

当我们处理的列表中既有字符串,又有非字符串的数据时,我们可以使用生成器表达式或列表解析将列表中的每个元素转为str类型。(注:具体关于列表解析与生成器表达式的效率问题,可参考杰瑞的专栏。)

相关文章

  • Python 进阶(下)

    1、如何调整字符串中文本的格式? 2、如何将多个小字符串拼接成一个大字符串? 3、如何对字符串进行左、右、居中对齐...

  • python高级编程技巧(6)

    一. 如何将多个小字符串拼接成一个大的字符串 实际案例: 在设计某网络程序时,我们自定义了一个基于UDP的网络协议...

  • 如何将多个小字符串拼接成一个大字符串

    实际案例 在设计某网络程序时,我们自定义了一个基于UDP的网络协议,按照固定次序向服务器传递一系列参数:hwDet...

  • Java字符串拼接的几种方式和区别

    字符串拼接 字符串拼接是我们在Java代码中比较经常要做的事情,就是把多个字符串拼接到一起。 我们都知道,Stri...

  • 关于 Java 字符串拼接的几种方式以及性能比较

    一、字符串拼接 字符串拼接是我们在Java代码中比较经常要做的事情,就是把多个字符串拼接到一起。 我们都知道,St...

  • Swift - Beautify Code

    多个字符串拼接 在 UI 上面需要多个字符串进行拼接, 判断一个整数是否有在范围内 Closure 和 Function

  • 数组API:

    1.String(); 吧数组穿换成字符串 案例: 2.join('拼接符'); 拼接成字符串,如果没有拼接符,默...

  • 【Python进阶】2.14 合并拼接字符串

    2.14 合并拼接字符串 问题 你想将几个小的字符串合并为一个大的字符串 解决方案 如果你想要合并的字符串是在一个...

  • 3_8拼接最小字典序

    对于一个给定的字符串数组,请找到一种拼接顺序,使所有小字符串拼接成的大字符串是所有可能的拼接中字典序最小的。 给定...

  • 拼接最小字典序

    题目 对于一个给定的字符串数组,请找到一种拼接顺序,使所有小字符串拼接成的大字符串是所有可能的拼接中字典序最小的。...

网友评论

    本文标题:如何将多个小字符串拼接成一个大字符串

    本文链接:https://www.haomeiwen.com/subject/mofilxtx.html