字符串连接的变体?

时间:2015-12-08 14:31:19

标签: python string string-concatenation

字符串文字串联中的以下两个变体(带或不带加号):

  • 首选方式是什么?
  • 有什么区别?
  • 何时应该使用其中一种?
  • 是否应该使用它们,若有,为什么?
  • join是首选吗?

代码:

>>> # variant 1. Plus
>>> 'A'+'B'
'AB'
>>> # variant 2. Just a blank space
>>> 'A' 'B'
'AB'
>>> # They seems to be both equal
>>> 'A'+'B' == 'A' 'B'
True

2 个答案:

答案 0 :(得分:13)

并置仅适用于字符串文字:

FlowLayout.swift

如果使用字符串对象:

>>> 'A' 'B'
'AB'

您需要使用其他方法:

>>> a = 'A'
>>> b = 'B'

>>> a b a b ^ SyntaxError: invalid syntax >>> a + b 'AB' 比仅仅将文字放在一起更为明显。

第一种方法的一个用途是将长文本分成几行,保留 源代码中的缩进:

+

>>> a = 5 >>> if a == 5: text = ('This is a long string' ' that I can continue on the next line.') >>> text 'This is a long string that I can continue on the next line.' 是连接更多字符串的首选方法,例如在列表中:

''join()

答案 1 :(得分:1)

没有+的变体是在语法解析代码期间完成的。我想这样做是为了让你在你的代码中更好地编写多行代码,所以你可以这样做:

test = "This is a line that is " \
       "too long to fit nicely on the screen."

我想如果可能的话,你应该使用non-+版本,因为在字节代码中只有结果字符串,没有连接的迹象。

当你使用+时,你的代码中有两个字符串,你在运行时执行连接(除非解释器很聪明并优化它,但我不知道它们是否这样做)。

显然,你做不到:    a =' A'    ba =' B'一个

哪一个更快? no-+版本,因为它甚至在执行脚本之前完成。

+ vs join - >如果你有很多元素,那么join是首选的,因为它被优化以处理许多元素。使用+连接多个字符串会在进程内存中产生大量部分结果,而使用join则不会。

如果您要连接几个元素,我猜+更好,因为它更具可读性。