## The Question :

*320 people think this question is useful*

I need to join a list of items. Many of the items in the list are integer values returned from a function; i.e.,

myList.append(munfunc())

How should I convert the returned result to a string in order to join it with the list?

Do I need to do the following for every integer value:

myList.append(str(myfunc()))

Is there a more Pythonic way to solve casting problems?

*The Question Comments :*

## The Answer 1

*574 people think this answer is useful*

Calling `str(...)`

is the Pythonic way to convert something to a string.

You might want to consider why you want a list of strings. You could instead keep it as a list of integers and only convert the integers to strings when you need to display them. For example, if you have a list of integers then you can convert them one by one in a for-loop and join them with `,`

:

print(','.join(str(x) for x in list_of_ints))

## The Answer 2

*196 people think this answer is useful*

There’s nothing wrong with passing integers to str. One reason you might not do this is that myList is really supposed to be a list of integers e.g. it would be reasonable to sum the values in the list. In that case, do not pass your ints to str before appending them to myList. If you end up not converting to strings before appending, you can construct one big string by doing something like

', '.join(map(str, myList))

## The Answer 3

*42 people think this answer is useful*

map function in python can be used. It takes two arguments. First argument is the **function** which has to be used for each element of the list. Second argument is the **iterable**.

a = [1, 2, 3]
map(str, a)
['1', '2', '3']

After converting the list into string you can use simple **join** function to combine list into a single string

a = map(str, a)
''.join(a)
'123'

## The Answer 4

*10 people think this answer is useful*

a=[1,2,3]
b=[str(x) for x in a]
print b

above method is the easiest and most general way to convert list into string. another short method is-

a=[1,2,3]
b=map(str,a)
print b

## The Answer 5

*5 people think this answer is useful*

There are three ways of doing this.

let say you have a list of integers

my_list = [100,200,300]

`"-".join(str(n) for n in my_list)`

`"-".join([str(n) for n in my_list])`

`"-".join(map(str, my_list))`

However as stated in the example of timeit on python website at https://docs.python.org/2/library/timeit.html using a map is faster. So I would recommend you using `"-".join(map(str, my_list))`

## The Answer 6

*2 people think this answer is useful*

Your problem is rather clear. Perhaps you’re looking for extend, to add all elements of another list to an existing list:

>>> x = [1,2]
>>> x.extend([3,4,5])
>>> x
[1, 2, 3, 4, 5]

If you want to convert integers to strings, use str() or string interpolation, possibly combined with a list comprehension, i.e.

>>> x = ['1', '2']
>>> x.extend([str(i) for i in range(3, 6)])
>>> x
['1', '2', '3', '4', '5']

All of this is considered pythonic (ok, a generator expression is even more pythonic but let’s stay simple and on topic)

## The Answer 7

*2 people think this answer is useful*

For example:

lst_points = [[313, 262, 470, 482], [551, 254, 697, 449]]
lst_s_points = [" ".join(map(str, lst)) for lst in lst_points]
print lst_s_points
# ['313 262 470 482', '551 254 697 449']

As to me, I want to add a `str`

before each str list:

# here o means class, other four points means coordinate
print ['0 ' + " ".join(map(str, lst)) for lst in lst_points]
# ['0 313 262 470 482', '0 551 254 697 449']

Or single list:

lst = [313, 262, 470, 482]
lst_str = [str(i) for i in lst]
print lst_str, ", ".join(lst_str)
# ['313', '262', '470', '482'], 313, 262, 470, 482
lst_str = map(str, lst)
print lst_str, ", ".join(lst_str)
# ['313', '262', '470', '482'], 313, 262, 470, 482

## The Answer 8

*1 people think this answer is useful*

Maybe you do not need numbers as strings, just do:

functaulu = [munfunc(arg) for arg in range(loppu)]

Later if you need it as string you can do it with string or with format string:

`print "Vastaus5 = %s" % functaulu[5]`

## The Answer 9

*-1 people think this answer is useful*

How come no-one seems to like `repr`

?

python 3.7.2:

>>> int_list = [1, 2, 3, 4, 5]
>>> print(repr(int_list))
[1, 2, 3, 4, 5]
>>>

Take care though, it’s an explicit representation. An example shows:

#Print repr(object) backwards
>>> print(repr(int_list)[::-1])
]5 ,4 ,3 ,2 ,1[
>>>

more info at pydocs-repr