Data Manipulation
Filtering Lists
Basic Filtering Techniques
## Using list comprehension
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = [num for num in numbers if num % 2 == 0]
## Using filter() function
def is_positive(x):
return x > 0
positive_numbers = list(filter(is_positive, [-1, 0, 1, 2, 3]))
Mapping Operations
## Squaring numbers
numbers = [1, 2, 3, 4, 5]
squared_numbers = [x**2 for x in numbers]
## Converting data types
string_numbers = ['1', '2', '3', '4']
integer_numbers = [int(num) for num in string_numbers]
Sorting and Ordering
Sorting Methods
Method |
Description |
Example |
sort() |
In-place sorting |
numbers.sort() |
sorted() |
Returns new sorted list |
sorted_numbers = sorted(numbers) |
## Custom sorting
students = [
{'name': 'Alice', 'grade': 85},
{'name': 'Bob', 'grade': 92},
{'name': 'Charlie', 'grade': 78}
]
## Sort by grade
sorted_students = sorted(students, key=lambda x: x['grade'], reverse=True)
Combining and Splitting Lists
List Concatenation and Splitting
## Concatenating lists
list1 = [1, 2, 3]
list2 = [4, 5, 6]
combined_list = list1 + list2
## Splitting lists
def chunk_list(lst, chunk_size):
return [lst[i:i + chunk_size] for i in range(0, len(lst), chunk_size)]
original_list = [1, 2, 3, 4, 5, 6, 7, 8]
chunked_lists = chunk_list(original_list, 3)
Advanced Manipulation Techniques
Reducing Lists
from functools import reduce
## Sum of list elements
numbers = [1, 2, 3, 4, 5]
total_sum = reduce(lambda x, y: x + y, numbers)
## Finding maximum value
max_value = reduce(lambda x, y: x if x > y else y, numbers)
Data Manipulation Workflow
graph TD
A[Original List] --> B{Filtering}
B --> C[Transformed List]
C --> D{Sorting}
D --> E[Ordered List]
E --> F{Further Processing}
- Use list comprehensions for better performance
- Avoid repeated list modifications
- Choose appropriate methods based on data size
LabEx Insight
LabEx recommends practicing these manipulation techniques to build robust data processing skills in Python.