美文网首页
python(拼接字符串)

python(拼接字符串)

作者: OldSix1987 | 来源:发表于2016-09-03 17:26 被阅读99次

    案例


    在设计某网络程序时,我们自定义了一个基于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>”

    核心分析

    (1)str1 + str2
    (2)str.join()

    代码


    # str1 + str2   --------------------------------------
    
    pl = ["<0112>", "<32>", "<1024x768>", "<60>", "<1>", "<100.0>", "<500.0>"]
    s = ''
    
    for p in pl:
        s += p  # 当字符串很长的时候,会造成内存开销和浪费
    
    print(s)
    
    # str.join()   ------------------推荐----------------------
    
    t = ';'.join(['abc', '123', 'xyz'])
    print(t)  # abc;123;xyz
    
    t2 = ''.join(['abc', '123', 'xyz'])
    print(t2)  # abc123xyz
    
    res = ''.join(pl)
    print(res)
    
    
    l = ['abc', 123, 34, 'xyz']
    # res2 = ''.join(l)
    # join方法处理的list,只能含有str类型的元素,如果有int类型,则会报错 ->
    # TypeError: sequence item 1: expected str instance, int found
    
    res2 = ''.join([str(x) for x in l])  # 列表解析式,会生成一个list,可能会造成存储开销
    
    res3 = ''.join(str(x) for x in l)  # 生成器对象 generator object 不会生成列表,开销小
    print(res2, res3)  # abc12334xyz
    

    相关文章

      网友评论

          本文标题:python(拼接字符串)

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