Add have_same_contents, includes_all and includes_any

This commit is contained in:
Isabelle Viktoria Maciohsek
2020-03-14 11:34:52 +02:00
committed by GitHub
parent b047b8f546
commit 53c0329a89
3 changed files with 64 additions and 0 deletions

22
have_same_contents.md Normal file
View 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 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 array.
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
View 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
View File

@ -0,0 +1,21 @@
---
title: includes_any
tags: list,intermediate
---
Returns `True` if any the elements in `values` are 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
```