使用Python调整两个字符串之间的一个空格

15

我有两个字符串:

>>> a = "abcd"
>>> b = "xyz"
>>> c = a + b
>>> c
abcdxyz

当添加ab时,我该如何得到abcd xyz作为结果?

5个回答

23

只需在这两个字符串之间添加一个空格:

a = "abcd" 
b = "xyz" 
c = a + " " + b  # note the extra space concatenated with the other two
print c

这将为您提供

abcd xyz
你可以使用像.join()这样的函数,但是对于如此简短的内容来说,那似乎几乎是违反直觉的(而且依我看来也过度了)。也就是说,首先创建一个包含这两个字符串的列表,然后调用该列表中的函数,并在打印语句中使用该函数的返回值... 而你其实只需将需要的空格与2个字符串连接起来即可。这种方法语义上更加清晰。
基于:“简单胜于复杂”。(Python之禅,“import this”)

3
我同意。对于需要事先放入列表中的两个元素使用.join()看起来有些繁琐。但对于更长的字符串列表,则绝对是正确的方法。 - Tim Pietzcker
@TimPietzcker 绝对没错..我自己也是join()的忠实粉丝,但对于这个问题,它真的不是必需的。如果这些是几个字符串,那么使用join()肯定是正确的选择。 - Levon
1
@Downvoter .. 为什么要点踩?没有解释的点踩对任何人都没有帮助,包括提问者、Stack Overflow或我自己,因此是不建设性的。鉴于问题的基本性质,解决方案故意以相同的水平提供,以满足提问者的需求。 - Levon

21
你可以使用join方法,将字符串与所选分隔符拼接在一起。
a = "abcd"
b = "xyz"
c = " ".join([a, b])

4
自从 Python 3.6 版本起,你可以使用 f-strings 轻松地连接两个字符串。代码更加简洁,变量直接在字符串的上下文中引用。
a = 'hello'
b = 'world'
c = f'{a} {b}'

print(c)

上述代码将输出以下内容:
hello world
.join()函数仍然是处理许多字符串或者字符串数量可能变化的情况下的首选方法。

3
Python支持字符串格式化操作模板系统(后者在技术上是一个简单但强大的类),作为字符串模块的一部分。虽然加号运算符可以完成其工作,但缺乏字符串格式化可能会影响代码的可读性。以下是字符串格式化的基本示例:
c = '%s %s' % (a, b)

聪明的想法加1分。使用已弃用的字符串格式操作而不是新的和改进的.format()方法则扣1分。 - Tim Pietzcker
使用f-strings,现在更加容易:f'{a} {b}' - noddy

0
根据您的使用情况,您可以在打印语句中简单地使用逗号。
a = "spaces"
b = "between"
c = "words"

print(a, b, c)

>>> spaces between words

请注意,这仅适用于print语句内部。否则,逗号会将表达式转换为元组。
s = a, b, c
print(s)
>>> ('spaces', 'between', 'words')

一件你可以做的事情是将字符串连接成一个元组,然后在print中解包它。
print(*s)
>>> spaces between words

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