如何使用单行将 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
包含字符串。如果它包含 int
s、float
s 等,则需要 map()
.
尝试:
>>> items=[1, 'a', 2.3, (1, 2)]
>>> ' '.join(str(i) for i in items)
'1 a 2.3 (1, 2)'
我试过:
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
包含字符串。如果它包含 int
s、float
s 等,则需要 map()
.
尝试:
>>> items=[1, 'a', 2.3, (1, 2)]
>>> ' '.join(str(i) for i in items)
'1 a 2.3 (1, 2)'