Merge pull request #189 from 30-seconds/list-snippet-additions

List snippet additions
This commit is contained in:
Angelos Chalaris
2020-03-16 22:01:13 +02:00
committed by GitHub
4 changed files with 79 additions and 0 deletions

View File

@ -0,0 +1,22 @@
---
title: is_contained_in
tags: list,intermediate
---
Returns `True` if the elements of the first list are contained in the second one regardless of order, `False` otherwise.
Use `count()` to check if any value in `a` has more occurences than it has in `b`, returning `False` if any such value is found, `True` otherwise.
```py
def is_contained_in(a, b):
for v in set(a):
if a.count(v) > b.count(v):
return False
return True
```
```py
is_contained_in([1, 4], [2, 4, 1]) # True
```

21
snippets/map_object.md Normal file
View File

@ -0,0 +1,21 @@
---
title: map_object
tags: list,intermediate
---
Maps the values of a list to a dictionary using a function, where the key-value pairs consist of the original value as the key and the result of the function as the value.
Use a `for` loop to iterate over the list's values, assigning the values produced by `fn` to each key of the dictionary.
```py
def map_object(itr, fn):
ret = {}
for x in itr:
ret[x] = fn(x)
return ret
```
```py
map_object([1,2,3], lambda x: x * x) # { 1: 1, 2: 4, 3: 9 }
```

18
snippets/take.md Normal file
View File

@ -0,0 +1,18 @@
---
title: take
tags: list,beginner
---
Returns a list with `n` elements removed from the beginning.
Use slice notation to create a slice of the list with `n` elements taken from the beginning.
```py
def take(itr, n = 1):
return itr[:n]
```
```py
take([1, 2, 3], 5) # [1, 2, 3]
take([1, 2, 3], 0) # []
```

18
snippets/take_right.md Normal file
View File

@ -0,0 +1,18 @@
---
title: take_right
tags: list,beginner
---
Returns a list with `n` elements removed from the end.
Use slice notation to create a slice of the list with `n` elements taken from the end.
```py
def take_right(itr, n = 1):
return itr[-n:]
```
```py
take_right([1, 2, 3], 2) # [2, 3]
take_right([1, 2, 3]) # [3]
```