Introduction to Python Collections
Python provides four primary data structures for storing and manipulating collections of data: Lists, Tuples, Dictionaries, and Sets. Each structure serves unique purposes and is tailored to specific use cases. Let’s dive into their features with a tabular comparison followed by in-depth explanations and examples.Feature Comparison
Feature | List | Tuple | Dictionary | Set |
---|---|---|---|---|
Definition | Ordered, mutable collection | Ordered, immutable collection | Key-value pair mapping | Unordered, unique elements |
Syntax | [1, 2, 3] | (1, 2, 3) | {'key': 'value'} | {1, 2, 3} |
Duplicates | Allowed | Allowed | Keys: No, Values: Yes | Not allowed |
Mutability | Mutable | Immutable | Keys: Immutable, Values: Mutable | Mutable |
Access by Index | Yes | Yes | No (access by key) | No |
Iteration | Yes | Yes | Yes (keys, values, or items) | Yes |
Methods | Append, Remove, Sort | Count, Index | Keys, Values, Items | Add, Remove, Union |
Python Collections: Lists, Tuples, Dictionaries, and Sets
Meta Description: Learn Python’s core collections—lists, tuples, dictionaries, and sets. Explore their differences, use cases, and examples. Enhance your understanding with code snippets and detailed explanations.
Tags: Python collections, Python lists, Python tuples, Python dictionaries, Python sets, Python examples
Introduction to Python Collections
Python provides four primary data structures for storing and manipulating collections of data: Lists, Tuples, Dictionaries, and Sets. Each structure serves unique purposes and is tailored to specific use cases. Let’s dive into their features with a tabular comparison followed by in-depth explanations and examples.
Feature Comparison
Feature | List | Tuple | Dictionary | Set |
---|---|---|---|---|
Definition | Ordered, mutable collection | Ordered, immutable collection | Key-value pair mapping | Unordered, unique elements |
Syntax | [1, 2, 3] | (1, 2, 3) | {'key': 'value'} | {1, 2, 3} |
Duplicates | Allowed | Allowed | Keys: No, Values: Yes | Not allowed |
Mutability | Mutable | Immutable | Keys: Immutable, Values: Mutable | Mutable |
Access by Index | Yes | Yes | No (access by key) | No |
Iteration | Yes | Yes | Yes (keys, values, or items) | Yes |
Methods | Append, Remove, Sort | Count, Index | Keys, Values, Items | Add, Remove, Union |
1. Lists
A list is an ordered, mutable collection of elements. You can store heterogeneous data types and modify the list after creation.
Key Features
- Dynamic: Can grow or shrink in size.
- Supports indexing and slicing.
- Allows duplicates.
Examples
pythonCopy code# Creating and accessing a list
fruits = ["apple", "banana", "cherry"]
print(fruits[1]) # Output: banana
# Modifying a list
fruits.append("orange") # Adds an element
fruits[0] = "kiwi" # Changes the first element
print(fruits) # Output: ['kiwi', 'banana', 'cherry', 'orange']
# Iterating through a list
for fruit in fruits:
print(fruit)
# Advanced: List comprehension
squared_numbers = [x**2 for x in range(5)]
print(squared_numbers) # Output: [0, 1, 4, 9, 16]
2. Tuples
Tuples are ordered collections, similar to lists, but are immutable (cannot be changed after creation).
Key Features
- Useful for read-only data.
- Can be used as dictionary keys if they contain only immutable elements.
- Allows duplicates.
Examples
pythonCopy code# Creating and accessing tuples
coordinates = (10, 20, 30)
print(coordinates[1]) # Output: 20
# Nested tuples
nested_tuple = ((1, 2), (3, 4))
print(nested_tuple[1][0]) # Output: 3
# Converting list to tuple
numbers = [1, 2, 3]
tuple_numbers = tuple(numbers)
print(tuple_numbers) # Output: (1, 2, 3)
# Unpacking tuples
x, y, z = coordinates
print(x, y, z) # Output: 10 20 30
3. Dictionaries
Dictionaries store data in key-value pairs. Keys must be unique and immutable.
Key Features
- Fast lookups for keys.
- Can store any data type as values.
- Keys are case-sensitive.
Examples
pythonCopy code# Creating and accessing a dictionary
person = {"name": "Alice", "age": 25, "city": "New York"}
print(person["name"]) # Output: Alice
# Adding and modifying
person["age"] = 26 # Modify
person["job"] = "Developer" # Add
print(person) # Output: {'name': 'Alice', 'age': 26, 'city': 'New York', 'job': 'Developer'}
# Iterating through a dictionary
for key, value in person.items():
print(f"{key}: {value}")
# Removing keys
del person["city"]
print(person) # Output: {'name': 'Alice', 'age': 26, 'job': 'Developer'}
# Dictionary methods
keys = person.keys() # Get all keys
values = person.values() # Get all values
4. Sets
Sets are unordered collections of unique elements.
Key Features
- No duplicates allowed.
- Fast membership testing (
in
operator). - Supports mathematical operations like union and intersection.
Examples
pythonCopy code# Creating and modifying sets
fruits = {"apple", "banana", "cherry"}
fruits.add("orange")
fruits.add("apple") # Duplicate; ignored
print(fruits) # Output: {'banana', 'orange', 'cherry', 'apple'}
# Set operations
set1 = {1, 2, 3}
set2 = {3, 4, 5}
print(set1.union(set2)) # Output: {1, 2, 3, 4, 5}
print(set1.intersection(set2)) # Output: {3}
print(set1.difference(set2)) # Output: {1, 2}
# Membership testing
print("banana" in fruits) # Output: True
Notes and Key Takeaways
- When to Use What?
- List: If you need an ordered, mutable sequence of elements.
- Tuple: If you want a fixed, ordered collection.
- Dictionary: For fast key-based lookups.
- Set: For unique elements and mathematical set operations.
- Performance Considerations:
- Dictionaries and sets are implemented using hash tables, making them faster for lookups but unordered.
- Tuples are faster than lists due to their immutability.
- Common Missteps:
- Attempting to change a tuple’s content.
- Using mutable types as dictionary keys or set elements.