I tried doing:
str = ""
"".join(map(str, items))
but it says str object is not callable. Is this doable using a single line?
I tried doing:
str = ""
"".join(map(str, items))
but it says str object is not callable. Is this doable using a single line?
Use string join()
method.
List:
>>> l = ["a", "b", "c"]
>>> " ".join(l)
'a b c'
>>>
Tuple:
>>> t = ("a", "b", "c")
>>> " ".join(t)
'a b c'
>>>
Non-string objects:
>>> l = [1,2,3]
>>> " ".join([str(i) for i in l])
'1 2 3'
>>> " ".join(map(str, l))
'1 2 3'
>>>
The problem is map
need function as first argument.
Your code
str = ""
"".join(map(str, items))
Make str
function as str
variable which has empty string.
Use other variable name.
Your map()
call isn't working because you overwrote the internal str()
function. If you hadn't done that, this works:
In [25]: items = ["foo", "bar", "baz", "quux", "stuff"]
In [26]: "".join(map(str, items))
Out[26]: 'foobarbazquuxstuff'
Or, you could simply do:
In [27]: "".join(items)
Out[27]: 'foobarbazquuxstuff'
assuming items
contains strings. If it contains int
s, float
s, etc., you'll need map()
.
Try:
>>> items=[1, 'a', 2.3, (1, 2)]
>>> ' '.join(str(i) for i in items)
'1 a 2.3 (1, 2)'