## Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

### Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

# Trying understand the pieces of my code (go figure)

```class Game:
def __init__(self):
self.size = 4
self.card_options = ['Add', 'Boo', 'Cat', 'Dev',
'Egg', 'Far', 'Gum', 'Hut']
self.columns = ['A', 'B', 'C', 'D']
self.cards = []
self.locations = []
for column in self.columns:
for num in range(1, self.size + 1):
self.locations.append(f'{column}{num}')
```

Above you will find the Python code for creating the card game, and my question has to do with the last line here. In laymen's terms, what is the point in using the append function for this situation? Just trying to understand what this loop is doing. Thank you in advance!

Hi Jeffrey! In each instance of your game, self.locations is a list that holds locations for your cards (like A1, B2, C3, D4, etc.)

That loop is working like this:

```for column in self.columns:
# for A in self.columns
for num in range(1, self.size + 1):
# for num in range (1-5)
self.locations.append(f'{column}{num}')
#self.locations.append(f'{A}{1}')
```

So, "A1" will be added (appended) to self.locations. In the next iteration of the loop, A2 will be added. Then A3 and A4. This will occur for B1-B4, C1-C4, and D1-D4 as well.

When you create the set_cards and check_location methods later, you will refer back to the self.locations list.