Lists in Python
A List in Python is a data structure that allows you to store multiple items in a single variable. Lists are ordered, mutable, and can contain elements of different data types.
Creating a Listβ
You create a list using square brackets []:
# Empty List
empty_list = []
# List of Integers
numbers = [1, 2, 3, 4, 5]
# List of Strings
fruits = ["apple", "banana", "cherry"]
# Mixed Data Types
mixed = [1, "hello", 3.14, True]
Indexingβ
Indexing means accessing elements by their position.
- Index starts from 0 in Python:
fruits = ["apple", "banana", "cherry"]
print(fruits[0]) # apple
print(fruits[1]) # banana
print(fruits[2]) # cherry
- Negative indexing starts from the end:
print(fruits[-1]) # cherry
print(fruits[-2]) # banana
print(fruits[-3]) # apple
Slicingβ
Slicing lets you extract a sublist:
numbers = [10, 20, 30, 40, 50]
print(numbers[1:4]) # [20, 30, 40]
print(numbers[:3]) # [10, 20, 30]
print(numbers[2:]) # [30, 40, 50]
print(numbers[-3:-1]) # [30, 40]
Syntax:
list[start:stop:step]
Example with step:
print(numbers[::2]) # [10, 30, 50]
Modifying Elementsβ
Lists are mutable, which means you can change their contents:
fruits = ["apple", "banana", "cherry"]
fruits[1] = "mango"
print(fruits) # ['apple', 'mango', 'cherry']
List Methodsβ
Python provides many built-in methods for lists:
| Method | Description |
|---|---|
append(x) | Adds an item to the end of the list |
insert(i, x) | Inserts an item at a specific index |
extend(iter) | Adds all elements from another iterable |
remove(x) | Removes the first occurrence of the item |
pop([i]) | Removes and returns the item at the given index |
clear() | Removes all elements |
index(x) | Returns the index of the first occurrence of the item |
count(x) | Counts how many times the item appears |
sort() | Sorts the list in ascending order |
reverse() | Reverses the list |
copy() | Returns a shallow copy of the list |
Examplesβ
append()β
nums = [1, 2, 3]
nums.append(4)
print(nums) # [1, 2, 3, 4]
insert()β
nums.insert(1, 100)
print(nums) # [1, 100, 2, 3, 4]
extend()β
nums.extend([5, 6])
print(nums) # [1, 100, 2, 3, 4, 5, 6]
remove() and pop()β
nums.remove(100)
print(nums) # [1, 2, 3, 4, 5, 6]
nums.pop() # Removes the last element
print(nums) # [1, 2, 3, 4, 5]
nums.pop(2) # Removes index 2
print(nums) # [1, 2, 4, 5]
Iterating Through a Listβ
Using a for loop:
fruits = ["apple", "banana", "cherry"]
for item in fruits:
print(item)
Output:
apple
banana
cherry
Using indices:
for i in range(len(fruits)):
print(i, fruits[i])
Membership Testβ
Check whether an item exists in the list:
print("apple" in fruits) # True
print("mango" not in fruits) # True
Nested Listsβ
Lists can contain other lists:
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
print(matrix[0]) # [1, 2, 3]
print(matrix[1][2]) # 6
List Comprehensionsβ
A concise way to create new lists:
squares = [x**2 for x in range(1, 6)]
print(squares) # [1, 4, 9, 16, 25]
With a condition:
even = [x for x in range(10) if x % 2 == 0]
print(even) # [0, 2, 4, 6, 8]
Copying Listsβ
Be careful! Assigning directly creates a reference:
a = [1, 2, 3]
b = a
b.append(4)
print(a) # [1, 2, 3, 4]
To create an independent copy:
c = a.copy()
c.append(5)
print(a) # [1, 2, 3, 4]
print(c) # [1, 2, 3, 4, 5]
Conclusionβ
Python Lists are a powerful and flexible data structure used everywhereβfrom collecting and processing data to building complex programs. Practice using list methods and experiment to become confident.