diff --git a/snippets/is_contained_in.md b/snippets/is_contained_in.md new file mode 100644 index 000000000..1491bcb65 --- /dev/null +++ b/snippets/is_contained_in.md @@ -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 +``` diff --git a/snippets/map_object.md b/snippets/map_object.md new file mode 100644 index 000000000..57eae334d --- /dev/null +++ b/snippets/map_object.md @@ -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 } +``` diff --git a/snippets/take.md b/snippets/take.md new file mode 100644 index 000000000..6b1f77b7b --- /dev/null +++ b/snippets/take.md @@ -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) # [] +``` diff --git a/snippets/take_right.md b/snippets/take_right.md new file mode 100644 index 000000000..0e68fcbb8 --- /dev/null +++ b/snippets/take_right.md @@ -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] +```