diff --git a/snippets/find.md b/snippets/find.md new file mode 100644 index 000000000..186304622 --- /dev/null +++ b/snippets/find.md @@ -0,0 +1,17 @@ +--- +title: find +tags: list,beginner +--- + +Returns the value of the first element in the provided list that satisfies the provided testing function. + +Use list comprehension and `next()` to return the first element in `lst` for which `fn` returns `True`. + +```py +def find(lst, fn): + return next(x for x in lst if fn(x)) +``` + +```py +find([1, 2, 3, 4], lambda n: n % 2 == 1) # 1 +``` diff --git a/snippets/find_index.md b/snippets/find_index.md new file mode 100644 index 000000000..48ce55556 --- /dev/null +++ b/snippets/find_index.md @@ -0,0 +1,17 @@ +--- +title: find_index +tags: list,beginner +--- + +Returns the index of the first element in the provided list that satisfies the provided testing function. + +Use list comprehension, `enumerate()` and `next()` to return the index of the first element in `lst` for which `fn` returns `True`. + +```py +def find_index(lst, fn): + return next(i for i, x in enumerate(lst) if fn(x)) +``` + +```py +find_index([1, 2, 3, 4], lambda n: n % 2 == 1) # 0 +``` diff --git a/snippets/find_last.md b/snippets/find_last.md new file mode 100644 index 000000000..ece374144 --- /dev/null +++ b/snippets/find_last.md @@ -0,0 +1,17 @@ +--- +title: find_last +tags: list,beginner +--- + +Returns the value of the last element in the provided list that satisfies the provided testing function. + +Use list comprehension and `next()` to return the last element in `lst` for which `fn` returns `True`. + +```py +def find_last(lst, fn): + return next(x for x in lst[::-1] if fn(x)) +``` + +```py +find_last([1, 2, 3, 4], lambda n: n % 2 == 1) # 3 +``` diff --git a/snippets/find_last_index.md b/snippets/find_last_index.md new file mode 100644 index 000000000..2eb60755f --- /dev/null +++ b/snippets/find_last_index.md @@ -0,0 +1,17 @@ +--- +title: find_last_index +tags: list,beginner +--- + +Returns the index of the last element in the provided list that satisfies the provided testing function. + +Use list comprehension, `enumerate()` and `next()` to return the index of the last element in `lst` for which `fn` returns `True`. + +```py +def find_last_index(lst, fn): + return len(lst) - 1 - next(i for i, x in enumerate(lst[::-1]) if fn(x)) +``` + +```py +find_last_index([1, 2, 3, 4], lambda n: n % 2 == 1) # 2 +```