Reputation: 811
What is the easiest way to convert list with str
into list with int
in Python?
For example, we have to convert ['1', '2', '3']
to [1, 2, 3]
. Of course, we can use a for
loop, but it's too easy.
Upvotes: 22
Views: 8009
Reputation: 125
If It is array and has installed numpy. We can used below code as well.
import numpy as np
np.array(['1', '2', '3'],dtype=int)
Upvotes: 2
Reputation: 141
If your strings are not only numbers (ie. u''), you can use :
new = [int(i) for i in ["1", "2", "3"] if isinstance(i, int) or isinstance(i, (str, unicode)) and i.isnumeric()]
Upvotes: 2
Reputation: 75389
You could also use list comprehensions:
new = [int(i) for i in old]
Or the map()
builtin function:
new = map(int, old)
Or the itertools.imap()
function, which will provide a speedup in some cases but in this case just spits out an iterator, which you will need to convert to a list (so it'll probably take the same amount of time):
import itertools as it
new = list(it.imap(int, old))
Upvotes: 5