如何使用单行将 list/tuple 转换为 python 中的 space 分隔字符串?

How to turn a list/tuple into a space separated string in python using a single line?

我试过:

str = ""
"".join(map(str, items))

但是它说 str 对象不可调用。使用单行是否可行?

使用字符串join()方法。

列表:

>>> l = ["a", "b", "c"]
>>> " ".join(l)
'a b c'
>>> 

元组:

>>> t = ("a", "b", "c")
>>> " ".join(t)
'a b c'
>>> 

非字符串对象:

>>> l = [1,2,3]
>>> " ".join([str(i) for i in l])
'1 2 3'
>>> " ".join(map(str, l))
'1 2 3'
>>> 

问题是map需要函数作为第一个参数。

您的代码

str = ""
"".join(map(str, items))

使 str 函数作为具有空字符串的 str 变量。

使用其他变量名。

您的 map() 调用无效,因为您覆盖了内部 str() 函数。如果你没有那样做,这行得通:

In [25]: items = ["foo", "bar", "baz", "quux", "stuff"]

In [26]: "".join(map(str, items))
Out[26]: 'foobarbazquuxstuff'

或者,您可以简单地执行以下操作:

In [27]: "".join(items)
Out[27]: 'foobarbazquuxstuff'

假设 items 包含字符串。如果它包含 ints、floats 等,则需要 map().

尝试:

>>> items=[1, 'a', 2.3, (1, 2)]
>>> ' '.join(str(i) for i in items)
'1 a 2.3 (1, 2)'