Practical Code Examples
Real-World Scenarios
def clean_user_responses(responses):
## Remove empty or None responses
cleaned_responses = [response for response in responses if response]
return cleaned_responses
## Example usage
user_inputs = ['', 'Hello', None, ' ', 'World', 0]
valid_inputs = clean_user_responses(user_inputs)
print(valid_inputs) ## Output: ['Hello', 'World']
2. Filtering Numeric Data
def remove_invalid_numbers(numbers):
## Remove zero and None values
valid_numbers = [num for num in numbers if num]
return valid_numbers
## Example scenario
financial_data = [100, 0, None, 250, '', 500]
processed_data = remove_invalid_numbers(financial_data)
print(processed_data) ## Output: [100, 250, 500]
Advanced Filtering Techniques
3. Complex Filtering with Multiple Conditions
def advanced_filter(data_list):
## Remove empty values and apply custom conditions
filtered_data = [
item for item in data_list
if item and len(str(item)) > 2
]
return filtered_data
## Example usage
mixed_data = ['a', '', 'abc', None, '1', '123', 0]
result = advanced_filter(mixed_data)
print(result) ## Output: ['abc', '123']
Filtering Strategies
graph TD
A[Data Filtering] --> B{Filtering Strategy}
B --> C[Simple Removal]
B --> D[Conditional Filtering]
B --> E[Type-Specific Filtering]
4. Type-Specific Filtering
def filter_by_type(data_list, data_type):
## Filter list by specific data type
filtered_data = [
item for item in data_list
if isinstance(item, data_type) and item
]
return filtered_data
## Example scenarios
mixed_list = [1, 'hello', None, 2.5, '', 3, 'world']
numeric_data = filter_by_type(mixed_list, (int, float))
string_data = filter_by_type(mixed_list, str)
print(numeric_data) ## Output: [1, 2.5, 3]
print(string_data) ## Output: ['hello', 'world']
Method |
Complexity |
Flexibility |
Performance |
List Comprehension |
Low |
High |
Fast |
filter() Function |
Medium |
Medium |
Moderate |
Custom Function |
High |
Very High |
Varies |
def efficient_filter(data_list):
## Use built-in methods for efficiency
return list(filter(None, data_list))
## Benchmark example
large_dataset = [None] * 1000 + list(range(1000))
filtered_result = efficient_filter(large_dataset)
print(len(filtered_result)) ## Output: 1000
Best Practices
- Choose appropriate filtering method
- Consider performance for large datasets
- Handle edge cases explicitly
- Use type-specific filtering when needed