Python lists are fundamental data structures that allow you to store collections of items. Lists are ordered, mutable, and can contain mixed data types. It is an alternative to arrays in other programming languages, which has the same capabilities.
1. Introduction to Lists
A list in Python is a collection of ordered elements, which can be of any data type (integers, strings, floats, booleans, objects, and even other lists).
Here’s an example of a Python list:
fruits = ["apple", "banana", "orange"]
numbers = [1, 2, 3, 4, 5]
mixed = ["python", 42, True, 3.14]
2. Creating Lists
Lists can be create by using square brackets or list() constructor.
Using square brackets ([]
):
empty_list = []
colors = ["red", "green", "blue"]
Using the list()
constructor:
empty_list = list()
letters = list("hello") # ['h', 'e', 'l', 'l', 'o']
3. Accessing Lists
Lists in Python are indexed starting from 0
. Thus, elements can be accessed like in traditional arrays by using square brackets.
my_list = ["apple", "banana", "orange"]
print(my_list[0]) # Output: apple
print(my_list[2]) # Output: orange
Negative Indexing:
You can use negative indexing to access elements from the end of the list:
print(my_list[-1]) # Output: orange
print(my_list[-2]) # Output: banana
Slicing
Slicing allows you to extract sublists:
numbers = [0, 1, 2, 3, 4, 5]
print(numbers[1:4]) # Output: [1, 2, 3]
print(numbers[:3]) # Output: [0, 1, 2]
print(numbers[3:]) # Output: [3, 4, 5]
4. Modifying Lists
Changing Elements
fruits = ["apple", "banana", "orange"]
fruits[1] = "mango"
print(fruits) # ['apple', 'mango', 'orange']
Adding Elements
Use .append()
to add elements at the end of a list:
fruits.append("kiwi")
print(fruits) # ['apple', 'mango', 'orange', 'kiwi']
Use .insert(index, item)
to add elements at a specific position:
fruits.insert(1, "grape")
print(fruits) # ['apple', 'grape', 'mango', 'orange', 'kiwi']
Removing Elements
Using .remove()
by value:
fruits.remove("mango")
print(fruits) # ['apple', 'grape', 'orange', 'kiwi']
Using .pop()
by index:
item = fruits.pop(2)
print(item) # orange
print(fruits) # ['apple', 'grape', 'kiwi']
Using del
statement:
del fruits[0]
print(fruits) # ['grape', 'kiwi']
5. List Operations
Concatenation (+
):
list1 = [1, 2, 3]
list2 = [4, 5, 6]
combined = list1 + list2
print(combined) # [1, 2, 3, 4, 5, 6]
Repetition (*
):
repeated = ["hi"] * 3
print(repeated) # ['hi', 'hi', 'hi']
Membership Check (in
):
numbers = [1, 2, 3, 4]
print(3 in numbers) # True
print(10 in numbers) # False
6. List Methods
Some useful built-in methods for Python lists are given in the table:
Method | Description | Example |
---|---|---|
.append(item) | Adds an item to the end | my_list.append(4) |
.insert(index, item) | Inserts item at the specified index | my_list.insert(1, 'x') |
.remove(item) | Removes the first matching item | my_list.remove(2) |
.pop(index) | Removes and returns item at index | my_list.pop(1) |
.clear() | Removes all elements from the list | my_list.clear() |
.index(item) | Returns index of first matching item | my_list.index('apple') |
.count(item) | Counts occurrences of item | my_list.count('apple') |
.sort() | Sorts the list in ascending order | my_list.sort() |
.reverse() | Reverses the order of the list | my_list.reverse() |
.copy() | Returns a copy of the list | copy_list = my_list.copy() |
7. List Comprehensions
List comprehensions provide a concise way to create lists using a single line of code:
# Basic syntax: [expression for item in iterable if condition]
squares = [x ** 2 for x in range(5)]
print(squares) # [0, 1, 4, 9, 16]
even_squares = [x ** 2 for x in range(10) if x % 2 == 0]
print(even_squares) # [0, 4, 16, 36, 64]
8. Common Use Cases
Lists are frequently used in Python programming, such as:
- Iterating through collections of items
- Storing data retrieved from files or databases
- Implementing stacks and queues
- Maintaining ordered collections
Example: Iterating through a list:
languages = ["Python", "Java", "C++"]
for language in languages:
print(language)