DEV Community

Cover image for “Making a list, checking it twice……cause man these are confusing”: ‘twas the night before list comprehensions....
Jessica Papa
Jessica Papa

Posted on

“Making a list, checking it twice……cause man these are confusing”: ‘twas the night before list comprehensions....

So, the day before my code challenge do-over, I was having a hard time wrapping my head around Python and object relationships. I was really hoping for that magical moment when it would all just click. During our practice challenge, I totally thought I blew it, but then when we went over it, something just clicked in my brain and suddenly I got it!

So, I had this moment where everything just made sense, but honestly, I'm still struggling with this issue. But, I figured writing about it would not only help me, but maybe others going through the same thing too. Life can be a crazy ride, am I right?

Let's dig a little deeper into this topic!

Image description

Of course, we know our comfy friend the for loop, it's safe and easier to understand when you're first learning Python!

Example:

the_list = []
        for concert in Concert.all:
            if concert.venue == self:
                the_list.append( concert )
         return the_list
Enter fullscreen mode Exit fullscreen mode

Code breakdown:

the_list = []: This creates an empty list called the_list that will be used to store the concerts related with the venue.

for concert in Concert.all: Concert.all is a list (or iterable) that has all available concerts. The loop iterates through each concert in this list.

if concert.venue == self: This line checks if the venue of the current concert matches the given self, where self is referring to the venue object within the context of a method or class.

the_list.append(concert): If the venue matches, the concert is appended to the the_list.

After the loop is completed, the function returns the_list, which contains all the concerts associated with the given venue.

Yay, for loops!

So, have you ever heard of list comprehensions? They're actually a really handy tool in Python that can make your code a lot more efficient when working with lists.

Basically, you can use them to create a new list by applying an expression to each item in an existing list (or other iterable). This makes your code shorter and easier to read - pretty cool, right?

Example:

return [c for c in Concert.all if c.venue == self]
Enter fullscreen mode Exit fullscreen mode

Code breakdown:

return: This indicates that the function will return a list.

c for c in Concert.all: This is the list comprehension syntax. The first c represents the whole concert instance that will go in your new list. The second c iterates through each c (concert) in Concert.all, which contains all available concerts.

if c.venue == self: The list comprehension includes c in the result only if the venue attribute of the c (concert) matches the value of self.

selfis referring to the venue object within the context of a method or class, representing the current venue.

I gotta give a shoutout to my teacher Adam for helping me have that "a-ha" moment cause this breakdown really helped me understand!

Image description

Remember:

When that imposter syndrome hits, think back on how far you have come!

Did you know what you know now a week ago?!

YOU CAN AND YOU ARE DOING THIS! BE KIND TO YOURSELF!

Image description

Happy coding!

Top comments (0)