Below are a few more useful things to know when working with loops and iterable objects like lists. It uses the
raw_data = '13839' example that we have been trying to break into a list of integers.
First, I coded
for i in range(len(list_data)): list_data[i] = int(list_data[i])
which does what we want. It produces a list of integers.
raw_data = '13839' list_data = list(raw_data) for i in range(len(list_data)): list_data[i] = int(list_data[i]) print(list_data)
[1, 3, 8, 3, 9]
Some people would naturally start by looping over the list objects...
for obj in list_data: int(obj)
but were then stuck. How do I get the
int(obj) saved to a list?
for i, obj in enumerate(list_data): print('The index is', i, 'and the value is', obj)
The index is 0 and the value is 1 The index is 1 and the value is 3 The index is 2 and the value is 8 The index is 3 and the value is 3 The index is 4 and the value is 9
raw_data = '13839' list_data = list(raw_data) for i, datum in enumerate(list_data): list_data[i] = int(datum) print(list_data)
[1, 3, 8, 3, 9]
You may not want to overwrite list_data with the integers, but rather save them in a separate list.
To do this, we first create an empty list
modified_data= and then use the
.append() list method to add elements to the end of the list.
list_data = list(raw_data) print('The string list', list_data) modified_data =  # an empty list for datum in list_data: modified_data.append(int(datum)) print('The integer list', modified_data)
The string list ['1', '3', '8', '3', '9'] The integer list [1, 3, 8, 3, 9]