How does file processing work in this case?
<p>An "address file"  </p>

<pre><code>100 Main Street 
23  Spring Park Road 
2012 Sunny Lane 
4 Martin Luther King Drive 
</code></pre>

<p>An "address list"</p>

<pre><code>    [['100', 'Main', 'Street'],
 ['23', 'Spring Park', 'Road'], 
 ['2012', 'Sunny', 'Lane'],
 ['4', 'Martin Luther King', 'Drive']]

numbers_file = open("address_file.txt", "r")
def load_addresses(numbers_file):
    addresses = [] # &lt;-- Create a list for sublist
    for line in numbers_file:
        address = [] # &lt;-- Create a sublist 
        parts = line.split() # &lt;-- split into lists by whitespace
        address.append(parts[0]) # &lt;--- I know this will take first elements of the            lists and appended (back of the list) to sublist. 
        name = '' # &lt;--- name to attach such as 'Spring' 'Park' into 'Spring'
        for i in range(1, len(parts) - 1): # &lt;--- Why is the range like this? is it because we ignore first element since its already in good form and since its index we -1?
            name += parts[i] + ' ' # &lt;--- ??
            address.append(name.strip()) # &lt;--- I guess this is to wipe out whitespace front and back 
            address.append(parts[-1]) # &lt;---???
            addresses.append(address) # &lt;--- append the sublist into list

    return addresses
</code></pre>

<p>ones that I placed <code>???</code> beside it are the confusing parts. Could someone please clarify them?</p>
