112

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

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

my_list = [how,are,you]

进入字符串"how are you"

空间很重要。howareyou到目前为止,我不想像我尝试使用的那样得到

"".join(my_list)
4

7 回答 7

242
" ".join(my_list)

您需要加入空格,而不是空字符串。

于 2012-09-06T23:51:25.233 回答
22

我将把它作为一个替代品,只是为了它,尽管与" ".join(my_list)字符串相比它几乎没用。对于非字符串(例如整数数组),这可能会更好:

" ".join(str(item) for item in my_list)
于 2014-11-24T01:09:33.097 回答
10

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

" ".join(map(str, my_list))
于 2017-08-23T11:33:00.267 回答
4

所以为了达到想要的输出,我们首先应该知道函数是如何工作的。

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

string_name.join(iterable)

需要注意的事项:

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

现在,要添加空格,我们只需要用string_namea" "或 a替换' '它们,它们都可以工作并放置iterable我们想要连接的。

因此,我们的函数将如下所示:

' '.join(my_list)

但是,如果我们想在 中的元素之间添加特定数量的white spacesiniterable怎么办?

我们需要添加这个:

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

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

所以,例如如果number=4

然后,str(4*" ").join(my_list)will 的输出是how are you,所以在每个单词之间有 4 个空格。

于 2019-02-28T09:57:38.283 回答
2

"".join([i for i in my_list])

这应该像你问的那样工作!

于 2020-05-10T07:12:13.850 回答
0

你可以遍历它来做到这一点

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())

于 2021-01-07T19:08:57.187 回答
-11

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

于 2014-01-12T14:34:13.197 回答