【问题标题】:creating one string from two in python在python中从两个创建一个字符串
【发布时间】:2011-03-08 22:19:40
【问题描述】:

有没有办法在 python 中将一个字符串添加到另一个字符串的末尾?例如

String1 = 'A' String2 = 'B'

我想要 String3 == 'AB'

【问题讨论】:

标签: python string python-3.x


【解决方案1】:

python 中的字符串连接很简单

a = "A"
b = "B"
c = a + b
print c

> AB

我对三个操作进行了基准测试,每个操作执行 1m:

c = a + b
c = '%s%s' % (a,b)
c = "{0}{1}".format(a, b)

结果是:

+:  0.232225275772
%s: 0.42436670365
{}: 0.683854960343

即使有 500 个字符串,+ 仍然是迄今为止最快的。我的script is on ideone 和结果(对于 500 个字符字符串)是:

+: 0.82
%s: 1.54
{}: 2.03

【讨论】:

  • 而且我一直认为使用 + 号的字符串连接很慢。可能是因为字符串太短了?
  • 也许,我已经将我的脚本上传到 Ideone,结果更加明显:ideone.com/a6JMi
  • 我不知道 .format 方法比 % 格式化方法慢。我认为 .format 是首选方法。它总是慢吗?
  • 对于最多 500 个字符串的所有内容,是的。如果需要,您可以调整我的脚本以运行进一步的测试。
【解决方案2】:

您可以使用最简单的版本:String3 = String1 + String2 或格式运算符(在 python3 中已弃用):String3 = '%s%s' % (String1, String2)

【讨论】:

  • 因为它被明确标记为 python-3.x 我会删除第二个选项。
  • @fredley,我读到 % 不会很快被删除。在新的 python 3.2 中它仍然存在。
  • 对于 Python 3,您可以使用String3 = "{0}{1}".format(String1, String2)
【解决方案3】:

在 Python 中,+ 运算符连接字符串:

>>> String3 = String1 + String2
>>> String3
   'AB'

这是最简单的方法,通常也是正确的选择。但是,有时您可能需要更多 efficient string concatenation

【讨论】:

    【解决方案4】:

    在速度无关紧要的情况下,为了简单起见,您无法击败c=a+b 的易用性。如果速度确实很重要(例如,因为您要进行大量连续的串联),str.join()can be a little more efficient (code at ideone)

    +: 2.51
    
    ''.join([a,...z]): 0.2
    
    append(): 2.05
    

    据我所知,如果您在不接触中间产品的情况下进行连续连接,我最好将每个添加附加到列表中,然后一次加入所有内容。对于单个串联情况,a+b 仍然比a.join(b)

    【讨论】:

      【解决方案5】:

      你也可以试试 str.join():

      >>>s1='a'
      >>>s2='b'
      >>>s3=''.join((s1,s2))
      >>>s3
      'ab'
      

      如果你写的话:

      >>>s3='WhatEver'.join((s1,s2))
      >>>s3
      'aWhatEverb'
      

      【讨论】:

        【解决方案6】:

        这是字符串连接的代码: `

        String1 = "a"
        String2 = "b"
        String3 = String1 + String2
        #String 3 would be ab
        

        ` 您可以将两个以上的字符串变量添加到一个字符串变量中。

        【讨论】:

        • 什么意思?
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多