## ![](https://s3.amazonaws.com/python-ga/images/GA_Cog_Medium_White_RGB.png) {.separator}

Python Programming: Lists

--- ## Lesson Objectives _After this lesson, you will be able to..._ - Create lists in Python. - Print out specific elements in a list. - Perform common list operations. --- ## Unit 2 Kickoff In Unit 1, we ended by printing the rating for a movie: `print('The rating for', movie_title, 'is', movie_rating)`. In Unit 2, we're going to learn to add logic and make this much more complex. By the end of this: - We'll have a variable that's set to either `1` or `2`. If the variable is a `1`, we'll print the movie title, and if the variable is a `2`, we'll print the rating. - We'll have many movies in a `list` and print them all out with just one `print` statement using a `loop`. - We'll make pieces of our program easy to reuse using `functions`. Ready? Let's go! --- ## What is a List? Variables hold one item. ```python my_color = "red" my_peer = "Brandi" ``` **Lists** hold multiple items - and lists can hold anything. ```python # Declaring lists colors = ["red", "yellow", "green"] my_class = ["Brandi", "Zoe", "Steve", "Aleksander", "Dasha"] # Strings colors = ["red", "yellow", "green"] # Numbers my_nums = [4, 7, 9, 1, 4] # Both! my_nums = ["red", 7, "yellow", 1, 4] ``` --- ## Accessing Elements **List Index** means the location of something (an _element_) in the list. List indexes start counting at 0! | List | "Brandi" | "Zoe" | "Steve" | "Aleksander" | "Dasha" | | :---: | :------: | :---: | :-----: | :----------: | :-----: | | Index | 0 | 1 | 2 | 3 | 4 | ```python my_class = ["Brandi", "Zoe", "Steve", "Aleksander", "Dasha"] print(my_class[0]) # Prints "Brandi" print(my_class[1]) # Prints "Zoe" print(my_class[4]) # Prints "Dasha" ``` --- ## We Do: Lists 1. Create a **list** with the names `"Holly"`, `"Juan"`, and `"Ming"`. 2. Print the third name. 3. Create a **list** with the numbers `2`,`4`, `6`, and `8`. 4. Print the first number. --- ## List Operations - Length `len()`: - A built in `list` operation. - How long is the list? ```python # length_variable = len(your_list) my_class = ["Brandi", "Zoe", "Steve", "Aleksander", "Dasha"] num_students = len(my_class) print("There are", num_students, "students in the class") # => 5 ``` --- ## Adding Elements: Append `.append()`: - A built in `list` operation. - Adds to the end of the list. - Takes any element. ```python # your_list.append(item) my_class = ["Brandi", "Zoe", "Steve", "Aleksander", "Dasha"] my_class.append("Sonyl") print(my_class) # => ["Brandi", "Zoe", "Steve", "Aleksander", "Dasha", "Sonyl"] ``` --- ## Adding Elements: Insert `.insert()`: - A built in `list` operation. - Adds to any point in the list - Takes any element and an index. ```python # your_list.insert(index, item) my_class = ["Brandi", "Zoe", "Steve", "Aleksander", "Dasha", "Sonyl"] my_class.insert(1, "Sanju") print(my_class) # => ["Brandi", "Sanju", "Zoe", "Steve", "Aleksander", "Dasha", "Sonyl"] ``` --- ## Removing elements - Pop `.pop()`: - A built in `list` operation. - Removes an item from the end of the list. ```python # your_list.pop() my_class = ["Brandi", "Zoe", "Steve", "Aleksander", "Dasha", "Sonyl"] student_that_left = my_class.pop() print("The student", student_that_left, "has left the class.") # => "Sonyl" print(my_class) # => ["Brandi", "Zoe", "Steve", "Aleksander", "Dasha"] ``` --- ## Removing elements - Pop(index) `.pop(index)`: - A built in `list` operation. - Removes an item from the list. - Can take an index. ```python # your_list.pop(index) my_class = ["Brandi", "Zoe", "Steve", "Aleksander", "Dasha", "Sonyl"] student_that_left = my_class.pop(2) # Remember to count from 0! print("The student", student_that_left, "has left the class.") # => "Steve" print(my_class) # => ["Brandi", "Zoe", "Aleksander", "Dasha", "Sonyl"] ``` --- ## Partner Exercise: Pop, Insert, and Append Partner up! Choose one person to be the driver and one to be the navigator, and see if you can do the prompts: --- ## Pop, Insert, Append Solution --- ## !! List Mutation: Warning !! This won't work as expected - don't do this! ```python colors = ["red", "yellow", "green"] print(colors.append("blue")) # => None ``` This will work - do this! ```python colors = ["red", "yellow", "green"] colors.append("blue") print(colors) # => ["red", "yellow", "green", "blue"] ``` --- ## Quick Review: Basic List Operations ```python # List Creation my_list = ["red", 7, "yellow", 1] # List Length list_length = len(my_list) # 4 # List Index print(my_list[0]) # red # List Append my_list.append("Yi") # ["red", 7, "yellow", 1, "Yi"] # List Insert at Index my_list.insert(1, "Sanju") # ["red", "Sanju", 7, "yellow", 1, "Yi"] # List Delete student_that_left = my_list.pop() # "Yi"; ["red", "Sanju", 7, "yellow", 1] # List Delete at Index student_that_left = my_list.pop(2) # 7; ["red", "Sanju", "yellow", 1] ``` --- ## Numerical List Operations - Sum Some actions can only be performed on lists with numbers. `sum()`: - A built in `list` operation. - Adds the list together. - Only works on lists with numbers! ```python # sum(your_numeric_list) team_batting_avgs = [.328, .299, .208, .301, .275, .226, .253, .232, .287] sum_avgs = sum(team_batting_avgs) print("The total of all the batting averages is", sum_avgs) # => 2.409 ``` --- ## List Operations - Max/Min `max()` or `min()`: - Built in `list` operations. - Finds highest, or lowest, in the list. ```python # max(your_numeric_list) # min(your_numeric_list) team_batting_avgs = [.328, .299, .208, .301, .275, .226, .253, .232, .287] print("The highest batting average is", max(team_batting_avgs)) # => 0.328 print("The lowest batting average is", min(team_batting_avgs)) # => 0.208 ``` --- ## You Do: Lists On your local computer, create a `.py` file named `list_practice.py`. In it: 1. Save a list with the numbers `2`, `4`, `6`, and `8` into a variable called `numbers`. 2. Print the max of `numbers`. 3. Pop the last element in `numbers` off; re-insert it at index `2`. 4. Pop the second number in `numbers` off. 5. Append `3` to `numbers`. 6. Print out the average number (divide the sum of `numbers` by the length). 7. Print `numbers`. --- ## Summary and Q&A We accomplished quite a bit! ```python # List Creation my_list = ["red", 7, "yellow", 1] # List Length list_length = len(my_list) # 4 # List Index print(my_list[0]) # red # List Append my_list.append("Yi") # ["red", 7, "yellow", 1, "Yi"] # List Insert at Index my_list.insert(1, "Sanju") # ["red", "Sanju", 7, "yellow", 1, "Yi"] # List Delete student_that_left = my_list.pop() # "Yi"; ["red", "Sanju", 7, "yellow", 1] # List Delete at Index student_that_left = my_list.pop(2) # 7; ["red", "Sanju", "yellow", 1] ``` --- ## Summary and Q&A And for numerical lists only... ```python # Sum all numbers in list sum_avgs = sum(team_batting_avgs) # Find minimum value of list min(team_batting_avgs) # Find maximum value of list max(team_batting_avgs) ``` --- ## Additional Resources - [Python Lists - Khan Academy Video](https://www.youtube.com/watch?v=zEyEC34MY1A) - [Google For Education: Python Lists](https://developers.google.com/edu/python/lists) - [Python-Lists](https://www.tutorialspoint.com/python/python_lists.htm)