Python List Comprehension Examples
Common Python list comprehension patterns with examples
Description
A collection of Python list comprehension examples demonstrating various use cases including filtering, transformation, and nested comprehensions.
Code
#!/usr/bin/env python3"""Basic Python List Comprehension ExamplesThis module demonstrates common list comprehension patterns in Python."""# Example 1: Basic list comprehension# Create a list of squares for numbers 0-9squares = [x**2 for x in range(10)]# Example 2: List comprehension with condition# Create a list of even numbers from 0-19evens = [x for x in range(20) if x % 2 == 0]# Example 3: List comprehension with transformation# Convert temperatures from Celsius to Fahrenheitcelsius_temps = [0, 10, 20, 30, 40]fahrenheit_temps = [(temp * 9/5) + 32 for temp in celsius_temps]# Example 4: Nested list comprehension# Create a multiplication table (10x10)multiplication_table = [[i * j for j in range(1, 11)] for i in range(1, 11)]# Example 5: List comprehension with multiple conditions# Find numbers divisible by 2 and 3 from 0-49numbers = [x for x in range(50) if x % 2 == 0 and x % 3 == 0]# Example 6: List comprehension with function# Convert strings to uppercasegreetings = ['hello', 'world', 'python', 'list', 'comprehension']uppercase_greetings = [greeting.upper() for greeting in greetings]# Example 7: List comprehension with if-else# Categorize numbers as even or oddnumber_categories = ['even' if x % 2 == 0 else 'odd' for x in range(10)]# Example 8: List comprehension with dictionary# Extract keys from a dictionaryperson = {'name': 'Alice', 'age': 30, 'city': 'New York'}keys = [key for key in person]# Example 9: List comprehension with set# Remove duplicates from a listnumbers_with_duplicates = [1, 2, 2, 3, 4, 4, 5, 5, 5]unique_numbers = list({x for x in numbers_with_duplicates})# Example 10: List comprehension with enumerate# Create a list of tuples with index and valueindexed_values = [(index, value) for index, value in enumerate(['a', 'b', 'c', 'd'])]if __name__ == '__main__': print('Squares:', squares) print('Evens:', evens) print('Fahrenheit Temps:', fahrenheit_temps) print('Multiplication Table (first 3 rows):', multiplication_table[:3]) print('Numbers divisible by 2 and 3:', numbers) print('Uppercase Greetings:', uppercase_greetings) print('Number Categories:', number_categories) print('Dictionary Keys:', keys) print('Unique Numbers:', unique_numbers) print('Indexed Values:', indexed_values)
#!/usr/bin/env python3"""Advanced Python List Comprehension ExamplesThis module demonstrates more complex list comprehension patterns."""# Example 1: Flatten a nested listnested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]flattened = [item for sublist in nested_list for item in sublist]# Example 2: Cartesian productcolors = ['red', 'green', 'blue']sizes = ['S', 'M', 'L']cartesian_product = [(color, size) for color in colors for size in sizes]# Example 3: Matrix transpositionmatrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]transposed = [[row[i] for row in matrix] for i in range(len(matrix[0]))]# Example 4: List comprehension with zipnames = ['Alice', 'Bob', 'Charlie']ages = [25, 30, 35]people = [{'name': name, 'age': age} for name, age in zip(names, ages)]# Example 5: List comprehension with file operations# Read lines from a file (assuming file exists)# lines = [line.strip() for line in open('example.txt') if line.strip()]# Example 6: List comprehension with exception handlingnumbers = ['1', '2', 'three', '4', 'five']valid_numbers = [int(x) for x in numbers if x.isdigit()]# Example 7: List comprehension with method callsclass Person: def __init__(self, name, age): self.name = name self.age = age def is_adult(self): return self.age >= 18people_objects = [Person('Alice', 25), Person('Bob', 17), Person('Charlie', 30)]adults = [person.name for person in people_objects if person.is_adult()]# Example 8: List comprehension with lambdanumbers = [1, 2, 3, 4, 5]squared = list(map(lambda x: x**2, numbers))# Example 9: List comprehension with multiple inputsnumbers1 = [1, 2, 3]numbers2 = [4, 5, 6]sums = [x + y for x, y in zip(numbers1, numbers2)]# Example 10: List comprehension with generator expression# Process large data efficientlydef generate_large_data(n): for i in range(n): yield ilarge_data = list(generate_large_data(1000))even_large_numbers = [x for x in large_data if x % 2 == 0]if __name__ == '__main__': print('Flattened List:', flattened) print('Cartesian Product:', cartesian_product) print('Transposed Matrix:', transposed) print('People:', people) print('Valid Numbers:', valid_numbers) print('Adults:', adults) print('Squared Numbers:', squared) print('Sums:', sums) print('Even Large Numbers (first 10):', even_large_numbers[:10])
#!/usr/bin/env python3"""Test cases for list comprehension examplesThis module contains unit tests for the list comprehension examples."""import unittestfrom basic_examples import ( squares, evens, fahrenheit_temps, multiplication_table, numbers, uppercase_greetings, number_categories, keys, unique_numbers, indexed_values)from advanced_examples import ( flattened, cartesian_product, transposed, people, valid_numbers, adults, squared, sums, even_large_numbers)class TestBasicExamples(unittest.TestCase): def test_squares(self): self.assertEqual(squares, [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]) def test_evens(self): self.assertEqual(evens, [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]) def test_fahrenheit_temps(self): self.assertEqual(fahrenheit_temps, [32.0, 50.0, 68.0, 86.0, 104.0]) def test_multiplication_table(self): self.assertEqual(multiplication_table[0], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) self.assertEqual(multiplication_table[9], [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]) def test_numbers(self): self.assertEqual(numbers, [0, 6, 12, 18, 24, 30, 36, 42, 48]) def test_uppercase_greetings(self): self.assertEqual(uppercase_greetings, ['HELLO', 'WORLD', 'PYTHON', 'LIST', 'COMPREHENSION']) def test_number_categories(self): self.assertEqual(number_categories, ['even', 'odd', 'even', 'odd', 'even', 'odd', 'even', 'odd', 'even', 'odd']) def test_keys(self): self.assertEqual(keys, ['name', 'age', 'city']) def test_unique_numbers(self): self.assertEqual(unique_numbers, [1, 2, 3, 4, 5]) def test_indexed_values(self): self.assertEqual(indexed_values, [(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd')])class TestAdvancedExamples(unittest.TestCase): def test_flattened(self): self.assertEqual(flattened, [1, 2, 3, 4, 5, 6, 7, 8, 9]) def test_cartesian_product(self): self.assertEqual(len(cartesian_product), 9) self.assertIn(('red', 'S'), cartesian_product) self.assertIn(('blue', 'L'), cartesian_product) def test_transposed(self): self.assertEqual(transposed, [[1, 4, 7], [2, 5, 8], [3, 6, 9]]) def test_people(self): self.assertEqual(len(people), 3) self.assertEqual(people[0], {'name': 'Alice', 'age': 25}) def test_valid_numbers(self): self.assertEqual(valid_numbers, [1, 2, 4]) def test_adults(self): self.assertEqual(adults, ['Alice', 'Charlie']) def test_squared(self): self.assertEqual(squared, [1, 4, 9, 16, 25]) def test_sums(self): self.assertEqual(sums, [5, 7, 9]) def test_even_large_numbers(self): self.assertEqual(len(even_large_numbers), 500) self.assertEqual(even_large_numbers[:5], [0, 2, 4, 6, 8])if __name__ == '__main__': unittest.main()
Comments
No comments yet. Be the first to comment!
Please login to leave a comment.