Merge pull request #188 from 30-seconds/new-list-snippets
New list snippets
This commit is contained in:
18
for_each.md
Normal file
18
for_each.md
Normal file
@ -0,0 +1,18 @@
|
||||
---
|
||||
title: for_each
|
||||
tags: list,beginner
|
||||
---
|
||||
|
||||
Executes the provided function once for each list element.
|
||||
|
||||
Use a `for` loop to execute `fn` for each element in `itr`.
|
||||
|
||||
```py
|
||||
def for_each(itr, fn):
|
||||
for el in itr:
|
||||
fn(el)
|
||||
```
|
||||
|
||||
```py
|
||||
for_each([1, 2, 3], print) # 1 2 3
|
||||
```
|
||||
18
for_each_right.md
Normal file
18
for_each_right.md
Normal file
@ -0,0 +1,18 @@
|
||||
---
|
||||
title: for_each_right
|
||||
tags: list,beginner
|
||||
---
|
||||
|
||||
Executes the provided function once for each list element, starting from the list's last element.
|
||||
|
||||
Use a `for` loop in combination with slice notation to execute `fn` for each element in `itr`, starting from the last one.
|
||||
|
||||
```py
|
||||
def for_each_right(itr, fn):
|
||||
for el in itr[::-1]:
|
||||
fn(el)
|
||||
```
|
||||
|
||||
```py
|
||||
for_each_right([1, 2, 3], print) # 3 2 1
|
||||
```
|
||||
22
frequencies.md
Normal file
22
frequencies.md
Normal file
@ -0,0 +1,22 @@
|
||||
---
|
||||
title: frequencies
|
||||
tags: list,intermediate
|
||||
---
|
||||
|
||||
Returns a dictionary with the unique values of a list as keys and their frequencies as the values.
|
||||
|
||||
Use a `for` loop to populate a dictionary, `f`, with the unique values in `lst` as keys, adding to existing keys every time the same value is encountered.
|
||||
|
||||
```py
|
||||
from functools import reduce
|
||||
|
||||
def frequencies(lst):
|
||||
f = {}
|
||||
for x in lst:
|
||||
f[x] = f[x] + 1 if x in f else 1
|
||||
return f
|
||||
```
|
||||
|
||||
```py
|
||||
frequencies(['a', 'b', 'a', 'c', 'a', 'a', 'b']) # { 'a': 4, 'b': 2, 'c': 1 }
|
||||
```
|
||||
22
have_same_contents.md
Normal file
22
have_same_contents.md
Normal file
@ -0,0 +1,22 @@
|
||||
---
|
||||
title: have_same_contents
|
||||
tags: list,intermediate
|
||||
---
|
||||
|
||||
Returns `True` if two lists contain the same elements regardless of order, `False` otherwise.
|
||||
|
||||
Use `set()` on the combination of both lists to find the unique values.
|
||||
Iterate over them with a `for` loop comparing the `count()` of each unique value in each list.
|
||||
Return `False` if the counts do not match for any element, `True` otherwise.
|
||||
|
||||
```py
|
||||
def have_same_contents(a, b):
|
||||
for v in set(a + b):
|
||||
if a.count(v) != b.count(v):
|
||||
return False
|
||||
return True
|
||||
```
|
||||
|
||||
```py
|
||||
have_same_contents([1, 2, 4], [2, 4, 1]) # True
|
||||
```
|
||||
21
includes_all.md
Normal file
21
includes_all.md
Normal file
@ -0,0 +1,21 @@
|
||||
---
|
||||
title: includes_all
|
||||
tags: utility,intermediate
|
||||
---
|
||||
|
||||
Returns `True` if all the elements in `values` are included in `lst`, `False` otherwise.
|
||||
|
||||
Check if every value in `values` is contained in `lst` using a `for` loop, returning `False` if any one value is not found, `True` otherwise.
|
||||
|
||||
```py
|
||||
def includes_all(lst, values):
|
||||
for v in values:
|
||||
if v not in lst:
|
||||
return False
|
||||
return True
|
||||
```
|
||||
|
||||
```py
|
||||
includes_all([1, 2, 3, 4], [1, 4]) # True
|
||||
includes_all([1, 2, 3, 4], [1, 5]) # False
|
||||
```
|
||||
21
includes_any.md
Normal file
21
includes_any.md
Normal file
@ -0,0 +1,21 @@
|
||||
---
|
||||
title: includes_any
|
||||
tags: list,intermediate
|
||||
---
|
||||
|
||||
Returns `True` if any element in `values` is included in `lst`, `False` otherwise.
|
||||
|
||||
Check if any value in `values` is contained in `lst` using a `for` loop, returning `True` if any one value is found, `False` otherwise.
|
||||
|
||||
```py
|
||||
def includes_any(lst, values):
|
||||
for v in values:
|
||||
if v in lst:
|
||||
return True
|
||||
return False
|
||||
```
|
||||
|
||||
```py
|
||||
includes_any([1, 2, 3, 4], [2, 9]) # True
|
||||
includes_any([1, 2, 3, 4], [8, 9]) # False
|
||||
```
|
||||
Reference in New Issue
Block a user