字符串文字串联中的以下两个变体(带或不带加号):
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
答案 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
则不会。
如果您要连接几个元素,我猜+
更好,因为它更具可读性。