PYTHON
Advanced List Comprehensions for Data Transformation
Efficiently transform and filter data in Python using advanced list comprehensions, creating new lists based on complex conditions and expressions in a single line.
data = [
{'name': 'Alice', 'age': 30, 'city': 'New York'},
{'name': 'Bob', 'age': 24, 'city': 'London'},
{'name': 'Charlie', 'age': 30, 'city': 'Paris'},
{'name': 'David', 'age': 35, 'city': 'New York'}
]
# Get names of people aged 30 from 'New York'
filtered_names = [
person['name'] for person in data
if person['age'] == 30 and person['city'] == 'New York'
]
# Create a dictionary mapping city to a list of names for people under 35 (without collections.defaultdict)
city_people_manual = {}
for person in data:
if person['age'] < 35:
city_people_manual.setdefault(person['city'], []).append(person['name'])
# List of (name, city) tuples for people over 25
people_over_25 = [(p['name'], p['city']) for p in data if p['age'] > 25]
print(f"Filtered names (age 30, New York): {filtered_names}")
print(f"People grouped by city (under 35): {city_people_manual}")
print(f"People over 25 (name, city): {people_over_25}")
How it works: This snippet demonstrates list comprehensions for concise data manipulation. The first example filters a list of dictionaries to extract specific names based on age and city criteria. The second shows how to create a dictionary mapping cities to lists of names using a standard loop with `setdefault`, effectively grouping data. The third uses a comprehension to create a list of tuples for people meeting an age criterion, highlighting the power of one-liners for data transformation.