Strings to integer
To convert a string to an integer:>>> x = '1234'
>>> int(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.>>> float(x)
1234.0
>>> y = '1234.678'
>>> float(y)
1234.6780000000001
>>> 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:Traceback (most recent call last):
File "<pyshell#4>", line 1, in <module>
int(y)
ValueError: invalid literal for int() with base 10: '1234.678'
>>> y = '1234.678'
>>> int(float(y))
1234
>>> 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']Mix of integers and floats
>>> list(map(int, x))
[7, 11, 13, 14, 28]>>> 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]