python: more notes on list comprehension
This commit is contained in:
		
							parent
							
								
									3ef147c0df
								
							
						
					
					
						commit
						d2a3fd621a
					
				
					 1 changed files with 21 additions and 3 deletions
				
			
		| 
						 | 
					@ -8,7 +8,7 @@ tags: [python]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
List comprehension is a syntactic shorthand for applying a function to each element in a list without explicitly using loop syntax.
 | 
					List comprehension is a syntactic shorthand for applying a function to each element in a list without explicitly using loop syntax.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Since its introduction to the language, the same functionality has become achievable by using functional methods like [`map` and `filter`](/Programming_Languages/Python/Syntax/Map_and_filter_in_Python.md) utilising [lambdas](/Programming_Languages/Python/Syntax/Lambdas_in_Python.md) however list comprehension is often more straightforward and easier to read.
 | 
					Since its introduction to the language, the same functionality has become achievable by using functional methods like [`map` and `filter`](/Programming_Languages/Python/Syntax/Map_and_filter_in_Python.md), utilising [lambdas](/Programming_Languages/Python/Syntax/Lambdas_in_Python.md) however list comprehension is often more straightforward and easier to read.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Syntax
 | 
					## Syntax
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -56,7 +56,7 @@ print(new_list)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Adding a condition
 | 
					### Adding a condition
 | 
				
			||||||
 | 
					
 | 
				
			||||||
We can apply a
 | 
					We can apply a conditional to a comprehension:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```py
 | 
					```py
 | 
				
			||||||
new_list = [item + 1 for item in values if item % 2 == 0]
 | 
					new_list = [item + 1 for item in values if item % 2 == 0]
 | 
				
			||||||
| 
						 | 
					@ -65,7 +65,25 @@ print('new_list:', new_list)
 | 
				
			||||||
# new_list: [3, 5, 7, 9]
 | 
					# new_list: [3, 5, 7, 9]
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Add example of how a simple filter could be applied without any execution on each element
 | 
					### Filters
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					By applying a condition (and no execution to each element) we effectively create a filter:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```py
 | 
				
			||||||
 | 
					numbers = [1, 2, 3, 4, 5]
 | 
				
			||||||
 | 
					numbers_filtered = [i for i in numbers if i > 2]
 | 
				
			||||||
 | 
					print(numbers_filtered)
 | 
				
			||||||
 | 
					# [3, 4, 5]
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					For comparison, the same outcome could be achieved with a filter and lambda:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```py
 | 
				
			||||||
 | 
					with_filter = list(filter(lambda x: x > 2, numbers))
 | 
				
			||||||
 | 
					print(with_filter)
 | 
				
			||||||
 | 
					# [3, 4, 5]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// TODO: Compare with how the same would be achieved with lambdas
 | 
					// TODO: Compare with how the same would be achieved with lambdas
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue