Strings to integer
To convert a string to an integer:
>>> x = '1234'
>>> int(x)
1234
Strings to float
To convert a string to float:
>>> x = '1234'
>>> float(x)
1234.0
>>> y = '1234.678'
>>> float(y)
1234.6780000000001
but, convertion of ’1234.678′ to integer using int() will gives an error.
>>> int(y)
Traceback (most recent call last):
File "<pyshell#4>", line 1, in <module>
int(y)
ValueError: invalid literal for int() with base 10: '1234.678'
A workaround is by first converting to float, then to integer:
>>> y = '1234.678'
>>> int(float(y))
1234
List/tuple of strings to list of integers
- Using list comprehension
>>> x = ['07', '11', '13', '14', '28'] >>> [int(i) for i in x] [7, 11, 13, 14, 28] - Using map
>>> x = ['07', '11', '13', '14', '28'] >>> list(map(int, x)) [7, 11, 13, 14, 28]Mix of integers and floats
>>> x = ['7.424124', '11', '13.423', '14.53453656', '28.2'] >>> list(map(int, map(float, x))) [7, 11, 13, 14, 28]
List/tuple of strings to list of floats
- Using list comprehension
>>> x = ['7.424124', '1', '13.423', '14.53453656', '28.2'] >>> [float(i) for i in x] [7.4241239999999999, 1.0, 13.423, 14.534536559999999, 28.199999999999999] - Using map
>>> x = ['7.424124', '1', '13.423', '14.53453656', '28.2'] >>> list(map(float, x)) [7.4241239999999999, 1.0, 13.423, 14.534536559999999, 28.199999999999999]
