Using a list of lists in a function

Hi all,

I've gotten the code to run correction in the **Using a list of lists in a function** exercise (as posted below), but I had a question as to *how* the code works.

```
n = [[1, 2, 3], [4, 5, 6, 7, 8, 9]]
# Add your function here
def flatten(lists):
results = []
for numbers in range(len(lists)):
for i in lists[numbers]:
results.append(i)
return results
print flatten(n)
```

I've been using the **range(len(list)** method for iteration for practice purposes. The area that I'm still wrapping my head around is why in an example like this...

```
for i in range(len(list)):
print list[i]
```

...I need to use list[i] instead of just "i".

In relation to this **Lists and Functions** assignment, if I was to use the first list method, the code would look like this:

```
def flatten2(lists):
results = []
for numbers in lists:
for i in numbers:
results.append(i)
print results
```

**My question** is, why doesn't...

```
n = [[1, 2, 3], [4, 5, 6, 7, 8, 9]]
# Add your function here
def flatten(lists):
results = []
for numbers in range(len(lists)):
for i in numbers:
results.append(i)
return results
print flatten(n)
```

...work with the **range(len(list))** module of iterating?