使用Python将两个字符串合并为一个字符串

5

在Python中,有没有一种方法可以将一个字符串添加到另一个字符串的末尾?例如:

String1 = 'A' String2 = 'B'

我希望String3 == 'AB'


这个回答解决了你的问题吗?在Python中连接字符串的首选方法是什么? - Vega
6个回答

8

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个字符的字符串,+仍然是迄今为止最快的。我的脚本在ideone上,而且结果(对于500个字符的字符串)如下:
+: 0.82
%s: 1.54
{}: 2.03

我一直认为使用加号进行字符串拼接很慢。也许是因为字符串太短了? - Utku Zihnioglu
也许,我已经将我的脚本上传到Ideone,在那里结果更加明显:http://ideone.com/a6JMi - fredley
我不知道.format方法比格式化的%方法慢。我以为.format是首选的方法。它总是比%慢吗? - Curious2learn
对于长度不超过500个字符的所有内容,是的。如果您想要进行更多的测试,您可以调整我的脚本来运行。 - fredley

2
在Python中,+运算符可以将字符串连接起来:
>>> String3 = String1 + String2
>>> String3
   'AB'

这是最简单的方法,通常也是正确的选择。然而,有时你可能需要更高效的字符串拼接方式。

2
您可以使用最简单的方法: String3 = String1 + String2 或格式化操作符(在python3中已弃用): String3 ='%s%s' %(String1,String2)

既然明确标记为python-3.x,我会删除第二个选项。 - fredley
2
@fredley,我读到百分号%不会很快被移除。在新的Python 3.2中它仍然存在。 - joaquin
2
对于Python 3,您可以使用String3 = "{0}{1}".format(String1, String2) - Greg Hewgill

1

当速度不是问题时,为了简单起见,您无法击败c=a+b。如果速度很重要(例如,因为您正在进行大量的连续连接),str.join()可能会更有效率(在ideone上的代码)

+: 2.51

''.join([a,...z]): 0.2

append(): 2.05

据我所知,如果您正在进行连续的字符串拼接操作而不涉及中间结果,则最好将每个添加操作附加到列表中,然后一次性连接所有内容。对于单个字符串拼接操作,a+b 仍然比 a.join(b) 更快。

0
你也可以尝试使用str.join():
>>>s1='a'
>>>s2='b'
>>>s3=''.join((s1,s2))
>>>s3
'ab'

如果你写:

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

-1
这是字符串连接的代码: `
String1 = "a"
String2 = "b"
String3 = String1 + String2
#String 3 would be ab

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


你是什么意思? - Bob

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接