Types of Lists in Python (Based on Content & Use)
There is technically only one list type in Python (list), but lists can be categorized by the types of elements they store or how they're structured. Here’s a breakdown with examples:
1. Homogeneous List
A list where all elements are of the same type.
Example: List of Integers
numbers = [1, 2, 3, 4, 5]
print(numbers)
Example: List of Strings
fruits = ["apple", "banana", "cherry"]
print(fruits)
2. Heterogeneous List
A list that contains elements of different data types.
Example:
mixed = [1, "hello", 3.14, True]
print(mixed)
3. Nested List (Multi-dimensional List)
A list that contains other lists as its elements — used to create matrices, tables, etc.
Example: 2D Matrix
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
print(matrix[1][2]) # Output: 6
4. Empty List
A list with no elements. Useful as a placeholder or to start collecting items dynamically.
Example:
empty = []
print(len(empty)) # Output: 0
5. List of Lists
A type of nested list where each item is a list — often used for structured data like rows and columns.
Example:
class_scores = [
["Alice", 85],
["Bob", 90],
["Charlie", 95]
]
print(class_scores[0][1]) # Output: 85
6. List with Boolean Values
Used often in logical filtering or flags.
Example:
flags = [True, False, True, False]
print(flags.count(True)) # Output: 2
7. List of Functions or Objects
Lists can hold functions, classes, or even custom objects.
Example: List of Functions
def greet(): return "Hello"
def bye(): return "Goodbye"
funcs = [greet, bye]
print(funcs[0]()) # Output: Hello
Bonus: List with List Comprehension
Python supports list comprehensions — a concise way to create lists.
Example: Squares of numbers
squares = [x**2 for x in range(5)]
print(squares) # [0, 1, 4, 9, 16]
Summary Table
| List Type |
Example |
Use Case |
| Homogeneous |
[1, 2, 3] |
When all elements are similar |
| Heterogeneous |
[1, "A", 3.5, True] |
When elements vary in type |
| Nested / 2D List |
[[1,2],[3,4]] |
Matrix or tabular data |
| Empty List |
[] |
Initializing before adding items |
| List of Lists |
[['A', 85], ['B', 90]] |
Structured records |
| Boolean List |
[True, False, True] |
Logical operations or filters |
| Function/Object List |
[func1, func2] |
Storing references to functions |
| List Comprehension |
[x*2 for x in range(5)] |
Dynamic list creation |