如何在 Python 中将列表转换为带有空格的字符串?
Posted
技术标签:
【中文标题】如何在 Python 中将列表转换为带有空格的字符串?【英文标题】:How do I convert a list into a string with spaces in Python? 【发布时间】:2012-08-31 20:34:45 【问题描述】:如何在 Python 中将列表转换为空格分隔的字符串?
比如我要转换这个列表:
my_list = [how,are,you]
进入字符串"how are you"
空格很重要。我不想得到howareyou
,就像我迄今为止尝试使用的那样
"".join(my_list)
【问题讨论】:
Protip:不要使用list
作为变量名。
【参考方案1】:
" ".join(my_list)
你需要加入一个空格,而不是一个空字符串。
【讨论】:
这样的代码是我喜欢 Python 的原因。如此简单。 如果我们有list = ['how ', 'are ', 'you ']
这种格式的字符串,那么如何将其转换为列表。
@MuhammadTaqi 然后去掉元素 be4 加入..." ".join([i.strip() for i in my_list)
【参考方案2】:
我将把它作为替代品,只是为了它,尽管与" ".join(my_list)
的字符串相比它几乎没用。对于非字符串(例如整数数组),这可能会更好:
" ".join(str(item) for item in my_list)
【讨论】:
【参考方案3】:对于非字符串list
,我们也可以这样做
" ".join(map(str, my_list))
【讨论】:
【参考方案4】:所以为了达到想要的输出,我们首先要知道函数是如何工作的。
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
。
那么,str(4*" ").join(my_list)
的输出将是how are you
,因此每个单词之间有 4 个空格。
【讨论】:
【参考方案5】:"".join([i for i in my_list])
这应该像你问的那样工作!
【讨论】:
【参考方案6】:你可以遍历它来做到这一点
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())
【讨论】:
【参考方案7】:为什么不在列表本身的项目中添加一个空格,例如:list = ["how ", "are ", "you "]
【讨论】:
您写这个答案的方式使它看起来更适合以评论的形式出现。如果您扩展此答案以解释为什么您的建议有效,那会更有益。 在您无权访问列表的情况下(例如使用input(a).split(b)
生成时),这将不起作用
我们不应该更改内部字符串,因为它会导致我们丢失空间以上是关于如何在 Python 中将列表转换为带有空格的字符串?的主要内容,如果未能解决你的问题,请参考以下文章