Casting from a list of lists of strings to list of lists of ints in Python
Question:
I’m reading some numbers from a data source that represent x- and y-coordinates that I’ll be using for a TSP-esque problem. I’m new to Python, so I’m trying to make the most of lists. After reading and parsing through the data, I’m left with a list of string lists that looks like this:
[[‘565.0’, ‘575.0’], [‘1215.0’,
‘245.0’], …yougetthepoint…
[‘1740.0’, ‘245.0’]]
I would rather be dealing with integer points. How can I transform these lists containing strings to lists containing ints? They don’t seem to be casting nicely, as I get this error:
ValueError: invalid literal for int()
with base 10: ‘565.0’
The decimal seems to be causing issues.
Answers:
x = [['565.0', '575.0'], ['1215.0', '245.0'], ['1740.0', '245.0']]
x = [[int(float(j)) for j in i] for i in x]
I’m reading some numbers from a data source that represent x- and y-coordinates that I’ll be using for a TSP-esque problem. I’m new to Python, so I’m trying to make the most of lists. After reading and parsing through the data, I’m left with a list of string lists that looks like this:
[[‘565.0’, ‘575.0’], [‘1215.0’,
‘245.0’], …yougetthepoint…
[‘1740.0’, ‘245.0’]]
I would rather be dealing with integer points. How can I transform these lists containing strings to lists containing ints? They don’t seem to be casting nicely, as I get this error:
ValueError: invalid literal for int()
with base 10: ‘565.0’
The decimal seems to be causing issues.
x = [['565.0', '575.0'], ['1215.0', '245.0'], ['1740.0', '245.0']]
x = [[int(float(j)) for j in i] for i in x]