如何在 Python 中将列表转换为带空格的字符串?

如何在 Python 中将列表转换为空格分隔的字符串?

例如,我想转换这个列表:

my_list = ["how", "are", "you"]

进入字符串 "how are you"

空格很重要,我不想要 "howareyou"

218477 次浏览
" ".join(my_list)

您需要使用空格而不是空字符串进行连接。

为什么不在列表中的项目中添加一个空格,比如:
list = ["how ", "are ", "you "]

I'll throw this in as an alternative just for the heck of it, even though it's pretty much useless when compared to " ".join(my_list) for strings. For non-strings (such as an array of ints) this may be better:

" ".join(str(item) for item in my_list)

对于非字符串 list,我们也可以这样做

" ".join(map(str, my_list))

So in order to achieve a desired output, we should first know how the function works.

Python 文档中描述的 join()方法的语法如下:

string_name.join(iterable)

注意事项:

  • 它返回一个与 iterable的元素连接的 string。元素之间的分隔符是 string_name
  • iterable中的任何非字符串值都将引发 TypeError

现在,要添加 留白,我们只需要将 string_name替换为 " "' ',它们都将工作并放置我们想要连接的 iterable

所以,我们的函数看起来像这样:

' '.join(my_list)

但是,如果我们想在 iterable中的元素之间添加一个特定数量的 white spaces,该怎么办呢?

我们需要补充一点:

str(number*" ").join(iterable)

在这里,number将是一个用户输入。

例如,如果 number=4

Then, the output of str(4*" ").join(my_list) will be how are you, so in between every word there are 4 white spaces.

您可以通过迭代来完成它

my_list = ['how', 'are', 'you']
my_string = " "
for a in my_list:
my_string = my_string + ' ' + a
print(my_string)

输出是

 how are you

你可以把它剥下来

how are you

像这样

my_list = ['how', 'are', 'you']
my_string = " "
for a in my_list:
my_string = my_string + ' ' + a
print(my_string.strip())