From cbc78ee450edc59da1e84d563d90116b12c6ae81 Mon Sep 17 00:00:00 2001 From: Isabelle Viktoria Maciohsek Date: Sun, 13 Jun 2021 19:38:10 +0300 Subject: [PATCH 1/3] Bake dates into snippets --- snippets/add_days.md | 2 + snippets/all_equal.md | 2 + snippets/all_unique.md | 2 + snippets/arithmetic_progression.md | 2 + snippets/average.md | 2 + snippets/average_by.md | 2 + snippets/bifurcate.md | 2 + snippets/bifurcate_by.md | 2 + snippets/binomial_coefficient.md | 2 + snippets/byte_size.md | 2 + snippets/camel.md | 2 + snippets/capitalize.md | 2 + snippets/capitalize_every_word.md | 2 + snippets/cast_list.md | 2 + snippets/celsius_to_fahrenheit.md | 38 ++++++++-------- snippets/check_prop.md | 40 +++++++++-------- snippets/chunk.md | 2 + snippets/chunk_into_n.md | 2 + snippets/clamp_number.md | 2 + snippets/collect_dictionary.md | 2 + snippets/combine_values.md | 58 +++++++++++++------------ snippets/compact.md | 2 + snippets/compose.md | 48 ++++++++++---------- snippets/compose_right.md | 48 ++++++++++---------- snippets/count_by.md | 2 + snippets/count_occurrences.md | 2 + snippets/cumsum.md | 42 +++++++++--------- snippets/curry.md | 44 ++++++++++--------- snippets/daterange.md | 2 + snippets/days_ago.md | 2 + snippets/days_diff.md | 2 + snippets/days_from_now.md | 2 + snippets/decapitalize.md | 2 + snippets/deep_flatten.md | 2 + snippets/degrees_to_rads.md | 2 + snippets/delay.md | 42 +++++++++--------- snippets/dict_to_list.md | 2 + snippets/difference.md | 2 + snippets/difference_by.md | 2 + snippets/digitize.md | 2 + snippets/drop.md | 42 +++++++++--------- snippets/drop_right.md | 42 +++++++++--------- snippets/every.md | 2 + snippets/every_nth.md | 2 + snippets/factorial.md | 2 + snippets/fahrenheit_to_celsius.md | 38 ++++++++-------- snippets/fibonacci.md | 50 +++++++++++---------- snippets/filter_non_unique.md | 2 + snippets/filter_unique.md | 2 + snippets/find.md | 36 +++++++-------- snippets/find_index.md | 36 +++++++-------- snippets/find_index_of_all.md | 2 + snippets/find_key.md | 2 + snippets/find_keys.md | 2 + snippets/find_last.md | 36 +++++++-------- snippets/find_last_index.md | 36 +++++++-------- snippets/find_parity_outliers.md | 2 + snippets/flatten.md | 2 + snippets/for_each.md | 38 ++++++++-------- snippets/for_each_right.md | 38 ++++++++-------- snippets/frequencies.md | 48 ++++++++++---------- snippets/from_iso_date.md | 2 + snippets/gcd.md | 2 + snippets/geometric_progression.md | 2 + snippets/get.md | 2 + snippets/group_by.md | 2 + snippets/hamming_distance.md | 40 +++++++++-------- snippets/has_duplicates.md | 2 + snippets/have_same_contents.md | 46 ++++++++++---------- snippets/head.md | 2 + snippets/hex_to_rgb.md | 2 + snippets/in_range.md | 2 + snippets/includes_all.md | 46 ++++++++++---------- snippets/includes_any.md | 46 ++++++++++---------- snippets/index_of_all.md | 2 + snippets/initial.md | 2 + snippets/initialize_2d_list.md | 2 + snippets/initialize_list_with_range.md | 2 + snippets/initialize_list_with_values.md | 2 + snippets/intersection.md | 2 + snippets/intersection_by.md | 2 + snippets/invert_dictionary.md | 2 + snippets/is_anagram.md | 2 + snippets/is_contained_in.md | 44 ++++++++++--------- snippets/is_divisible.md | 2 + snippets/is_even.md | 2 + snippets/is_odd.md | 2 + snippets/is_prime.md | 2 + snippets/is_weekday.md | 2 + snippets/is_weekend.md | 2 + snippets/kebab.md | 2 + snippets/key_in_dict.md | 2 + snippets/key_of_max.md | 36 +++++++-------- snippets/key_of_min.md | 36 +++++++-------- snippets/keys_only.md | 2 + snippets/km_to_miles.md | 2 + snippets/last.md | 2 + snippets/lcm.md | 2 + snippets/longest_item.md | 2 + snippets/map_dictionary.md | 2 + snippets/map_values.md | 2 + snippets/max_by.md | 2 + snippets/max_element_index.md | 36 +++++++-------- snippets/max_n.md | 2 + snippets/median.md | 2 + snippets/merge.md | 2 + snippets/merge_dictionaries.md | 2 + snippets/miles_to_km.md | 2 + snippets/min_by.md | 2 + snippets/min_element_index.md | 2 + snippets/min_n.md | 2 + snippets/months_diff.md | 2 + snippets/most_frequent.md | 2 + snippets/n_times_string.md | 36 +++++++-------- snippets/none.md | 2 + snippets/num_to_range.md | 2 + snippets/offset.md | 2 + snippets/pad.md | 46 ++++++++++---------- snippets/pad_number.md | 2 + snippets/palindrome.md | 2 + snippets/pluck.md | 48 ++++++++++---------- snippets/powerset.md | 46 ++++++++++---------- snippets/rads_to_degrees.md | 2 + snippets/reverse.md | 2 + snippets/reverse_number.md | 2 + snippets/rgb_to_hex.md | 2 + snippets/roll.md | 2 + snippets/sample.md | 2 + snippets/shuffle.md | 2 + snippets/similarity.md | 2 + snippets/slugify.md | 50 +++++++++++---------- snippets/snake.md | 2 + snippets/some.md | 2 + snippets/sort_by_indexes.md | 50 +++++++++++---------- snippets/sort_dict_by_key.md | 2 + snippets/sort_dict_by_value.md | 2 + snippets/split_lines.md | 2 + snippets/spread.md | 2 + snippets/sum_by.md | 2 + snippets/sum_of_powers.md | 2 + snippets/symmetric_difference.md | 2 + snippets/symmetric_difference_by.md | 2 + snippets/tail.md | 2 + snippets/take.md | 38 ++++++++-------- snippets/take_right.md | 38 ++++++++-------- snippets/to_binary.md | 2 + snippets/to_dictionary.md | 2 + snippets/to_hex.md | 2 + snippets/to_iso_date.md | 2 + snippets/to_roman_numeral.md | 2 + snippets/transpose.md | 2 + snippets/unfold.md | 2 + snippets/union.md | 2 + snippets/union_by.md | 2 + snippets/unique_elements.md | 2 + snippets/values_only.md | 2 + snippets/weighted_average.md | 2 + snippets/when.md | 2 + snippets/words.md | 2 + 159 files changed, 1024 insertions(+), 706 deletions(-) diff --git a/snippets/add_days.md b/snippets/add_days.md index 4bbaf74a5..954e1d72f 100644 --- a/snippets/add_days.md +++ b/snippets/add_days.md @@ -1,6 +1,8 @@ --- title: add_days tags: date,intermediate +firstSeen: 2020-10-28T16:19:04+02:00 +lastUpdated: 2020-10-28T16:19:04+02:00 --- Calculates the date of `n` days from the given date. diff --git a/snippets/all_equal.md b/snippets/all_equal.md index 951561181..79f6d063b 100644 --- a/snippets/all_equal.md +++ b/snippets/all_equal.md @@ -1,6 +1,8 @@ --- title: all_equal tags: list,beginner +firstSeen: 2019-08-20T11:39:18+03:00 +lastUpdated: 2020-10-11T13:40:42+03:00 --- Checks if all elements in a list are equal. diff --git a/snippets/all_unique.md b/snippets/all_unique.md index 5e523c93d..ce7d5c178 100644 --- a/snippets/all_unique.md +++ b/snippets/all_unique.md @@ -1,6 +1,8 @@ --- title: all_unique tags: list,beginner +firstSeen: 2018-04-01T11:03:09+03:00 +lastUpdated: 2021-01-07T23:30:28+02:00 --- Checks if all the values in a list are unique. diff --git a/snippets/arithmetic_progression.md b/snippets/arithmetic_progression.md index a1bda1d90..2fb19fa30 100644 --- a/snippets/arithmetic_progression.md +++ b/snippets/arithmetic_progression.md @@ -1,6 +1,8 @@ --- title: arithmetic_progression tags: math,beginner +firstSeen: 2020-07-28T13:57:33+03:00 +lastUpdated: 2020-11-02T19:27:07+02:00 --- Generates a list of numbers in the arithmetic progression starting with the given positive integer and up to the specified limit. diff --git a/snippets/average.md b/snippets/average.md index c3671c753..9d6267dfc 100644 --- a/snippets/average.md +++ b/snippets/average.md @@ -1,6 +1,8 @@ --- title: average tags: math,list,beginner +firstSeen: 2018-01-27T07:16:41+02:00 +lastUpdated: 2020-11-02T19:27:07+02:00 --- Calculates the average of two or more numbers. diff --git a/snippets/average_by.md b/snippets/average_by.md index 326c81816..6c4e464ba 100644 --- a/snippets/average_by.md +++ b/snippets/average_by.md @@ -1,6 +1,8 @@ --- title: average_by tags: math,list,intermediate +firstSeen: 2019-08-20T11:55:10+03:00 +lastUpdated: 2020-11-02T19:27:07+02:00 --- Calculates the average of a list, after mapping each element to a value using the provided function. diff --git a/snippets/bifurcate.md b/snippets/bifurcate.md index 9ccc89e9e..0092af1e6 100644 --- a/snippets/bifurcate.md +++ b/snippets/bifurcate.md @@ -1,6 +1,8 @@ --- title: bifurcate tags: list,intermediate +firstSeen: 2019-08-20T12:37:06+03:00 +lastUpdated: 2020-11-02T19:27:07+02:00 --- Splits values into two groups, based on the result of the given `filter` list. diff --git a/snippets/bifurcate_by.md b/snippets/bifurcate_by.md index 2b6847575..6d6fefcd9 100644 --- a/snippets/bifurcate_by.md +++ b/snippets/bifurcate_by.md @@ -1,6 +1,8 @@ --- title: bifurcate_by tags: list,intermediate +firstSeen: 2019-08-20T12:41:21+03:00 +lastUpdated: 2020-11-02T19:27:07+02:00 --- Splits values into two groups, based on the result of the given filtering function. diff --git a/snippets/binomial_coefficient.md b/snippets/binomial_coefficient.md index 153d0bbb0..e33f64c0c 100644 --- a/snippets/binomial_coefficient.md +++ b/snippets/binomial_coefficient.md @@ -1,6 +1,8 @@ --- title: binomial_coefficient tags: math,beginner +firstSeen: 2020-10-04T11:56:31+03:00 +lastUpdated: 2020-11-02T19:27:07+02:00 --- Calculates the number of ways to choose `k` items from `n` items without repetition and without order. diff --git a/snippets/byte_size.md b/snippets/byte_size.md index 447ad3560..3d992cce5 100644 --- a/snippets/byte_size.md +++ b/snippets/byte_size.md @@ -1,6 +1,8 @@ --- title: byte_size tags: string,beginner +firstSeen: 2018-02-01T10:19:59+02:00 +lastUpdated: 2020-11-02T19:27:07+02:00 --- Returns the length of a string in bytes. diff --git a/snippets/camel.md b/snippets/camel.md index dbfbc8e1a..b79248151 100644 --- a/snippets/camel.md +++ b/snippets/camel.md @@ -1,6 +1,8 @@ --- title: camel tags: string,regexp,intermediate +firstSeen: 2019-08-21T08:59:54+03:00 +lastUpdated: 2020-11-02T19:27:07+02:00 --- Converts a string to camelcase. diff --git a/snippets/capitalize.md b/snippets/capitalize.md index 238de044f..0e38e70d8 100644 --- a/snippets/capitalize.md +++ b/snippets/capitalize.md @@ -1,6 +1,8 @@ --- title: capitalize tags: string,intermediate +firstSeen: 2018-02-01T10:19:59+02:00 +lastUpdated: 2020-11-02T19:27:07+02:00 --- Capitalizes the first letter of a string. diff --git a/snippets/capitalize_every_word.md b/snippets/capitalize_every_word.md index 132067955..784d4b6ca 100644 --- a/snippets/capitalize_every_word.md +++ b/snippets/capitalize_every_word.md @@ -1,6 +1,8 @@ --- title: capitalize_every_word tags: string,beginner +firstSeen: 2018-02-01T10:19:59+02:00 +lastUpdated: 2020-11-02T19:27:07+02:00 --- Capitalizes the first letter of every word in a string. diff --git a/snippets/cast_list.md b/snippets/cast_list.md index cb5854b8c..d077c0ef8 100644 --- a/snippets/cast_list.md +++ b/snippets/cast_list.md @@ -1,6 +1,8 @@ --- title: cast_list tags: list,intermediate +firstSeen: 2019-08-20T12:47:43+03:00 +lastUpdated: 2020-11-02T19:27:07+02:00 --- Casts the provided value as a list if it's not one. diff --git a/snippets/celsius_to_fahrenheit.md b/snippets/celsius_to_fahrenheit.md index 58a6fd56b..39aac29b4 100644 --- a/snippets/celsius_to_fahrenheit.md +++ b/snippets/celsius_to_fahrenheit.md @@ -1,18 +1,20 @@ ---- -title: celsius_to_fahrenheit -tags: math,beginner -unlisted: true ---- - -Converts Celsius to Fahrenheit. - -- Follow the conversion formula `F = 1.8 * C + 32`. - -```py -def celsius_to_fahrenheit(degrees): - return ((degrees * 1.8) + 32) -``` - -```py -celsius_to_fahrenheit(180) # 356.0 -``` +--- +title: celsius_to_fahrenheit +tags: math,beginner +unlisted: true +firstSeen: 2020-04-05T12:29:03+03:00 +lastUpdated: 2021-01-04T12:47:04+02:00 +--- + +Converts Celsius to Fahrenheit. + +- Follow the conversion formula `F = 1.8 * C + 32`. + +```py +def celsius_to_fahrenheit(degrees): + return ((degrees * 1.8) + 32) +``` + +```py +celsius_to_fahrenheit(180) # 356.0 +``` diff --git a/snippets/check_prop.md b/snippets/check_prop.md index 2c27ddd26..dff5991f8 100644 --- a/snippets/check_prop.md +++ b/snippets/check_prop.md @@ -1,19 +1,21 @@ ---- -title: check_prop -tags: function,intermediate ---- - -Creates a function that will invoke a predicate function for the specified property on a given object. - -- Return a `lambda` function that takes an object and applies the predicate function, `fn` to the specified property. - -```py -def check_prop(fn, prop): - return lambda obj: fn(obj[prop]) -``` - -```py -check_age = check_prop(lambda x: x >= 18, 'age') -user = {'name': 'Mark', 'age': 18} -check_age(user) # True -``` +--- +title: check_prop +tags: function,intermediate +firstSeen: 2020-01-02T16:49:25+02:00 +lastUpdated: 2020-11-02T19:27:07+02:00 +--- + +Creates a function that will invoke a predicate function for the specified property on a given object. + +- Return a `lambda` function that takes an object and applies the predicate function, `fn` to the specified property. + +```py +def check_prop(fn, prop): + return lambda obj: fn(obj[prop]) +``` + +```py +check_age = check_prop(lambda x: x >= 18, 'age') +user = {'name': 'Mark', 'age': 18} +check_age(user) # True +``` diff --git a/snippets/chunk.md b/snippets/chunk.md index 8e11567e9..b6c584289 100644 --- a/snippets/chunk.md +++ b/snippets/chunk.md @@ -1,6 +1,8 @@ --- title: chunk tags: list,intermediate +firstSeen: 2018-01-09T06:39:42+02:00 +lastUpdated: 2020-11-02T19:27:07+02:00 --- Chunks a list into smaller lists of a specified size. diff --git a/snippets/chunk_into_n.md b/snippets/chunk_into_n.md index 1fe4df135..211c53f72 100644 --- a/snippets/chunk_into_n.md +++ b/snippets/chunk_into_n.md @@ -1,6 +1,8 @@ --- title: chunk_into_n tags: list,intermediate +firstSeen: 2020-10-12T22:11:30+03:00 +lastUpdated: 2020-10-23T05:35:06+03:00 --- Chunks a list into `n` smaller lists. diff --git a/snippets/clamp_number.md b/snippets/clamp_number.md index 2304cfc28..ba17926fe 100644 --- a/snippets/clamp_number.md +++ b/snippets/clamp_number.md @@ -1,6 +1,8 @@ --- title: clamp_number tags: math,beginner +firstSeen: 2019-08-20T12:50:38+03:00 +lastUpdated: 2020-11-02T19:27:07+02:00 --- Clamps `num` within the inclusive range specified by the boundary values. diff --git a/snippets/collect_dictionary.md b/snippets/collect_dictionary.md index 90d37aad2..d380b6d73 100644 --- a/snippets/collect_dictionary.md +++ b/snippets/collect_dictionary.md @@ -1,6 +1,8 @@ --- title: collect_dictionary tags: dictionary,intermediate +firstSeen: 2020-04-07T21:15:06+03:00 +lastUpdated: 2020-11-02T19:27:07+02:00 --- Inverts a dictionary with non-unique hashable values. diff --git a/snippets/combine_values.md b/snippets/combine_values.md index 01d2c7c1f..4164e6cfb 100644 --- a/snippets/combine_values.md +++ b/snippets/combine_values.md @@ -1,28 +1,30 @@ ---- -title: combine_values -tags: dictionary,intermediate ---- - -Combines two or more dictionaries, creating a list of values for each key. - -- Create a new `collections.defaultdict` with `list` as the default value for each key and loop over `dicts`. -- Use `dict.append()` to map the values of the dictionary to keys. -- Use `dict()` to convert the `collections.defaultdict` to a regular dictionary. - -```py -from collections import defaultdict - -def combine_values(*dicts): - res = defaultdict(list) - for d in dicts: - for key in d: - res[key].append(d[key]) - return dict(res) -``` - -```py -d1 = {'a': 1, 'b': 'foo', 'c': 400} -d2 = {'a': 3, 'b': 200, 'd': 400} - -combine_values(d1, d2) # {'a': [1, 3], 'b': ['foo', 200], 'c': [400], 'd': [400]} -``` +--- +title: combine_values +tags: dictionary,intermediate +firstSeen: 2021-03-07T12:30:47+02:00 +lastUpdated: 2021-04-04T14:32:35+03:00 +--- + +Combines two or more dictionaries, creating a list of values for each key. + +- Create a new `collections.defaultdict` with `list` as the default value for each key and loop over `dicts`. +- Use `dict.append()` to map the values of the dictionary to keys. +- Use `dict()` to convert the `collections.defaultdict` to a regular dictionary. + +```py +from collections import defaultdict + +def combine_values(*dicts): + res = defaultdict(list) + for d in dicts: + for key in d: + res[key].append(d[key]) + return dict(res) +``` + +```py +d1 = {'a': 1, 'b': 'foo', 'c': 400} +d2 = {'a': 3, 'b': 200, 'd': 400} + +combine_values(d1, d2) # {'a': [1, 3], 'b': ['foo', 200], 'c': [400], 'd': [400]} +``` diff --git a/snippets/compact.md b/snippets/compact.md index ee4239abe..ad3d06673 100644 --- a/snippets/compact.md +++ b/snippets/compact.md @@ -1,6 +1,8 @@ --- title: compact tags: list,beginner +firstSeen: 2018-01-19T12:17:06+02:00 +lastUpdated: 2020-11-02T19:27:07+02:00 --- Removes falsy values from a list. diff --git a/snippets/compose.md b/snippets/compose.md index 0221c42bc..d4401050d 100644 --- a/snippets/compose.md +++ b/snippets/compose.md @@ -1,23 +1,25 @@ ---- -title: compose -tags: function,advanced ---- - -Performs right-to-left function composition. - -- Use `functools.reduce()` to perform right-to-left function composition. -- The last (rightmost) function can accept one or more arguments; the remaining functions must be unary. - -```py -from functools import reduce - -def compose(*fns): - return reduce(lambda f, g: lambda *args: f(g(*args)), fns) -``` - -```py -add5 = lambda x: x + 5 -multiply = lambda x, y: x * y -multiply_and_add_5 = compose(add5, multiply) -multiply_and_add_5(5, 2) # 15 -``` +--- +title: compose +tags: function,advanced +firstSeen: 2020-01-02T15:51:20+02:00 +lastUpdated: 2020-11-02T19:27:07+02:00 +--- + +Performs right-to-left function composition. + +- Use `functools.reduce()` to perform right-to-left function composition. +- The last (rightmost) function can accept one or more arguments; the remaining functions must be unary. + +```py +from functools import reduce + +def compose(*fns): + return reduce(lambda f, g: lambda *args: f(g(*args)), fns) +``` + +```py +add5 = lambda x: x + 5 +multiply = lambda x, y: x * y +multiply_and_add_5 = compose(add5, multiply) +multiply_and_add_5(5, 2) # 15 +``` diff --git a/snippets/compose_right.md b/snippets/compose_right.md index dfc472599..73a2ee1a9 100644 --- a/snippets/compose_right.md +++ b/snippets/compose_right.md @@ -1,23 +1,25 @@ ---- -title: compose_right -tags: function,advanced ---- - -Performs left-to-right function composition. - -- Use `functools.reduce()` to perform left-to-right function composition. -- The first (leftmost) function can accept one or more arguments; the remaining functions must be unary. - -```py -from functools import reduce - -def compose_right(*fns): - return reduce(lambda f, g: lambda *args: g(f(*args)), fns) -``` - -```py -add = lambda x, y: x + y -square = lambda x: x * x -add_and_square = compose_right(add, square) -add_and_square(1, 2) # 9 -``` +--- +title: compose_right +tags: function,advanced +firstSeen: 2020-01-02T15:51:26+02:00 +lastUpdated: 2020-11-02T19:27:07+02:00 +--- + +Performs left-to-right function composition. + +- Use `functools.reduce()` to perform left-to-right function composition. +- The first (leftmost) function can accept one or more arguments; the remaining functions must be unary. + +```py +from functools import reduce + +def compose_right(*fns): + return reduce(lambda f, g: lambda *args: g(f(*args)), fns) +``` + +```py +add = lambda x, y: x + y +square = lambda x: x * x +add_and_square = compose_right(add, square) +add_and_square(1, 2) # 9 +``` diff --git a/snippets/count_by.md b/snippets/count_by.md index b9102d2eb..6c0ffdf02 100644 --- a/snippets/count_by.md +++ b/snippets/count_by.md @@ -1,6 +1,8 @@ --- title: count_by tags: list,intermediate +firstSeen: 2018-02-07T10:33:47+02:00 +lastUpdated: 2020-11-02T19:27:07+02:00 --- Groups the elements of a list based on the given function and returns the count of elements in each group. diff --git a/snippets/count_occurrences.md b/snippets/count_occurrences.md index 130b62771..2dc413583 100644 --- a/snippets/count_occurrences.md +++ b/snippets/count_occurrences.md @@ -1,6 +1,8 @@ --- title: count_occurrences tags: list,beginner +firstSeen: 2021-01-10T00:00:36+02:00 +lastUpdated: 2021-01-10T00:00:36+02:00 --- Counts the occurrences of a value in a list. diff --git a/snippets/cumsum.md b/snippets/cumsum.md index a70846283..3c8fa7794 100644 --- a/snippets/cumsum.md +++ b/snippets/cumsum.md @@ -1,20 +1,22 @@ ---- -title: cumsum -tags: list,intermediate ---- - -Creates a list of partial sums. - -- Use `itertools.accumulate()` to create the accumulated sum for each element. -- Use `list()` to convert the result into a list. - -```py -from itertools import accumulate - -def cumsum(lst): - return list(accumulate(lst)) -``` - -```py -cumsum(range(0, 15, 3)) # [0, 3, 9, 18, 30] -``` +--- +title: cumsum +tags: list,intermediate +firstSeen: 2021-01-13T23:30:41+02:00 +lastUpdated: 2021-01-13T23:30:41+02:00 +--- + +Creates a list of partial sums. + +- Use `itertools.accumulate()` to create the accumulated sum for each element. +- Use `list()` to convert the result into a list. + +```py +from itertools import accumulate + +def cumsum(lst): + return list(accumulate(lst)) +``` + +```py +cumsum(range(0, 15, 3)) # [0, 3, 9, 18, 30] +``` diff --git a/snippets/curry.md b/snippets/curry.md index 025ff9720..1e232a70b 100644 --- a/snippets/curry.md +++ b/snippets/curry.md @@ -1,21 +1,23 @@ ---- -title: curry -tags: function,intermediate ---- - -Curries a function. - -- Use `functools.partial()` to return a new partial object which behaves like `fn` with the given arguments, `args`, partially applied. - -```py -from functools import partial - -def curry(fn, *args): - return partial(fn, *args) -``` - -```py -add = lambda x, y: x + y -add10 = curry(add, 10) -add10(20) # 30 -``` +--- +title: curry +tags: function,intermediate +firstSeen: 2020-01-02T16:14:50+02:00 +lastUpdated: 2020-11-02T19:27:07+02:00 +--- + +Curries a function. + +- Use `functools.partial()` to return a new partial object which behaves like `fn` with the given arguments, `args`, partially applied. + +```py +from functools import partial + +def curry(fn, *args): + return partial(fn, *args) +``` + +```py +add = lambda x, y: x + y +add10 = curry(add, 10) +add10(20) # 30 +``` diff --git a/snippets/daterange.md b/snippets/daterange.md index 56c4d3429..994e0f88a 100644 --- a/snippets/daterange.md +++ b/snippets/daterange.md @@ -1,6 +1,8 @@ --- title: daterange tags: date,intermediate +firstSeen: 2020-10-28T16:19:14+02:00 +lastUpdated: 2021-01-07T23:30:28+02:00 --- Creates a list of dates between `start` (inclusive) and `end` (not inclusive). diff --git a/snippets/days_ago.md b/snippets/days_ago.md index c75fca4a1..1cbb0ac9a 100644 --- a/snippets/days_ago.md +++ b/snippets/days_ago.md @@ -1,6 +1,8 @@ --- title: days_ago tags: date,intermediate +firstSeen: 2020-10-28T16:19:30+02:00 +lastUpdated: 2020-10-28T16:19:30+02:00 --- Calculates the date of `n` days ago from today. diff --git a/snippets/days_diff.md b/snippets/days_diff.md index d2ce985f0..2374169fc 100644 --- a/snippets/days_diff.md +++ b/snippets/days_diff.md @@ -1,6 +1,8 @@ --- title: days_diff tags: date,beginner +firstSeen: 2020-10-28T16:19:39+02:00 +lastUpdated: 2020-10-28T16:19:39+02:00 --- Calculates the day difference between two dates. diff --git a/snippets/days_from_now.md b/snippets/days_from_now.md index 79ccfd7a6..35a4c801d 100644 --- a/snippets/days_from_now.md +++ b/snippets/days_from_now.md @@ -1,6 +1,8 @@ --- title: days_from_now tags: date,intermediate +firstSeen: 2020-10-28T16:19:51+02:00 +lastUpdated: 2020-10-28T16:19:51+02:00 --- Calculates the date of `n` days from today. diff --git a/snippets/decapitalize.md b/snippets/decapitalize.md index c68a93d6b..dd43c2a5c 100644 --- a/snippets/decapitalize.md +++ b/snippets/decapitalize.md @@ -1,6 +1,8 @@ --- title: decapitalize tags: string,intermediate +firstSeen: 2018-02-01T10:19:59+02:00 +lastUpdated: 2020-11-02T19:27:53+02:00 --- Decapitalizes the first letter of a string. diff --git a/snippets/deep_flatten.md b/snippets/deep_flatten.md index 7c6822bb3..0b35872be 100644 --- a/snippets/deep_flatten.md +++ b/snippets/deep_flatten.md @@ -1,6 +1,8 @@ --- title: deep_flatten tags: list,recursion,intermediate +firstSeen: 2018-01-16T16:54:14+02:00 +lastUpdated: 2020-12-29T19:53:45+02:00 --- Deep flattens a list. diff --git a/snippets/degrees_to_rads.md b/snippets/degrees_to_rads.md index 5426d459f..3bb652523 100644 --- a/snippets/degrees_to_rads.md +++ b/snippets/degrees_to_rads.md @@ -1,6 +1,8 @@ --- title: degrees_to_rads tags: math,beginner +firstSeen: 2019-10-15T14:31:11+03:00 +lastUpdated: 2020-11-02T19:27:53+02:00 --- Converts an angle from degrees to radians. diff --git a/snippets/delay.md b/snippets/delay.md index 70f4f3b7b..722a4f3f6 100644 --- a/snippets/delay.md +++ b/snippets/delay.md @@ -1,20 +1,22 @@ ---- -title: delay -tags: function,intermediate ---- - -Invokes the provided function after `ms` milliseconds. - -- Use `time.sleep()` to delay the execution of `fn` by `ms / 1000` seconds. - -```py -from time import sleep - -def delay(fn, ms, *args): - sleep(ms / 1000) - return fn(*args) -``` - -```py -delay(lambda x: print(x), 1000, 'later') # prints 'later' after one second -``` +--- +title: delay +tags: function,intermediate +firstSeen: 2020-01-02T16:24:51+02:00 +lastUpdated: 2020-11-02T19:27:53+02:00 +--- + +Invokes the provided function after `ms` milliseconds. + +- Use `time.sleep()` to delay the execution of `fn` by `ms / 1000` seconds. + +```py +from time import sleep + +def delay(fn, ms, *args): + sleep(ms / 1000) + return fn(*args) +``` + +```py +delay(lambda x: print(x), 1000, 'later') # prints 'later' after one second +``` diff --git a/snippets/dict_to_list.md b/snippets/dict_to_list.md index 5b13d7365..1ea0a2d48 100644 --- a/snippets/dict_to_list.md +++ b/snippets/dict_to_list.md @@ -1,6 +1,8 @@ --- title: dict_to_list tags: dictionary,list,intermediate +firstSeen: 2020-10-16T21:24:14+03:00 +lastUpdated: 2020-11-02T19:27:53+02:00 --- Converts a dictionary to a list of tuples. diff --git a/snippets/difference.md b/snippets/difference.md index cd34674f3..aece687fa 100644 --- a/snippets/difference.md +++ b/snippets/difference.md @@ -1,6 +1,8 @@ --- title: difference tags: list,beginner +firstSeen: 2018-01-20T16:16:44+02:00 +lastUpdated: 2020-11-02T19:27:53+02:00 --- Calculates the difference between two iterables, without filtering duplicate values. diff --git a/snippets/difference_by.md b/snippets/difference_by.md index c436dd037..f28234eda 100644 --- a/snippets/difference_by.md +++ b/snippets/difference_by.md @@ -1,6 +1,8 @@ --- title: difference_by tags: list,function,intermediate +firstSeen: 2018-02-08T15:59:27+02:00 +lastUpdated: 2020-11-02T19:27:53+02:00 --- Returns the difference between two lists, after applying the provided function to each list element of both. diff --git a/snippets/digitize.md b/snippets/digitize.md index fed9b46bf..2e22c5f8c 100644 --- a/snippets/digitize.md +++ b/snippets/digitize.md @@ -1,6 +1,8 @@ --- title: digitize tags: math,list,beginner +firstSeen: 2019-08-20T13:00:27+03:00 +lastUpdated: 2020-09-15T16:13:06+03:00 --- Converts a number to a list of digits. diff --git a/snippets/drop.md b/snippets/drop.md index 3770c4ef4..14a6ab8aa 100644 --- a/snippets/drop.md +++ b/snippets/drop.md @@ -1,20 +1,22 @@ ---- -title: drop -tags: list,beginner ---- - -Returns a list with `n` elements removed from the left. - -- Use slice notation to remove the specified number of elements from the left. -- Omit the last argument, `n`, to use a default value of `1`. - -```py -def drop(a, n = 1): - return a[n:] -``` - -```py -drop([1, 2, 3]) # [2, 3] -drop([1, 2, 3], 2) # [3] -drop([1, 2, 3], 42) # [] -``` +--- +title: drop +tags: list,beginner +firstSeen: 2020-03-10T21:59:41+02:00 +lastUpdated: 2020-11-02T19:27:53+02:00 +--- + +Returns a list with `n` elements removed from the left. + +- Use slice notation to remove the specified number of elements from the left. +- Omit the last argument, `n`, to use a default value of `1`. + +```py +def drop(a, n = 1): + return a[n:] +``` + +```py +drop([1, 2, 3]) # [2, 3] +drop([1, 2, 3], 2) # [3] +drop([1, 2, 3], 42) # [] +``` diff --git a/snippets/drop_right.md b/snippets/drop_right.md index 5dd30b2cb..465e47a46 100644 --- a/snippets/drop_right.md +++ b/snippets/drop_right.md @@ -1,20 +1,22 @@ ---- -title: drop_right -tags: list,beginner ---- - -Returns a list with `n` elements removed from the right. - -- Use slice notation to remove the specified number of elements from the right. -- Omit the last argument, `n`, to use a default value of `1`. - -```py -def drop_right(a, n = 1): - return a[:-n] -``` - -```py -drop_right([1, 2, 3]) # [1, 2] -drop_right([1, 2, 3], 2) # [1] -drop_right([1, 2, 3], 42) # [] -``` +--- +title: drop_right +tags: list,beginner +firstSeen: 2020-03-10T21:59:41+02:00 +lastUpdated: 2020-11-02T19:27:53+02:00 +--- + +Returns a list with `n` elements removed from the right. + +- Use slice notation to remove the specified number of elements from the right. +- Omit the last argument, `n`, to use a default value of `1`. + +```py +def drop_right(a, n = 1): + return a[:-n] +``` + +```py +drop_right([1, 2, 3]) # [1, 2] +drop_right([1, 2, 3], 2) # [1] +drop_right([1, 2, 3], 42) # [] +``` diff --git a/snippets/every.md b/snippets/every.md index 48fe9f39c..1d667267f 100644 --- a/snippets/every.md +++ b/snippets/every.md @@ -1,6 +1,8 @@ --- title: every tags: list,intermediate +firstSeen: 2019-08-20T11:34:24+03:00 +lastUpdated: 2020-11-02T19:27:53+02:00 --- Checks if the provided function returns `True` for every element in the list. diff --git a/snippets/every_nth.md b/snippets/every_nth.md index a20711d70..74840ef89 100644 --- a/snippets/every_nth.md +++ b/snippets/every_nth.md @@ -1,6 +1,8 @@ --- title: every_nth tags: list,beginner +firstSeen: 2019-08-20T13:10:12+03:00 +lastUpdated: 2020-11-02T19:27:53+02:00 --- Returns every `nth` element in a list. diff --git a/snippets/factorial.md b/snippets/factorial.md index c5bcbb2e0..d0cd8c9cc 100644 --- a/snippets/factorial.md +++ b/snippets/factorial.md @@ -1,6 +1,8 @@ --- title: factorial tags: math,recursion,beginner +firstSeen: 2018-01-27T07:29:56+02:00 +lastUpdated: 2020-09-15T16:13:06+03:00 --- Calculates the factorial of a number. diff --git a/snippets/fahrenheit_to_celsius.md b/snippets/fahrenheit_to_celsius.md index 77a09e53e..a37f63340 100644 --- a/snippets/fahrenheit_to_celsius.md +++ b/snippets/fahrenheit_to_celsius.md @@ -1,18 +1,20 @@ ---- -title: fahrenheit_to_celsius -tags: math,beginner -unlisted: true ---- - -Converts Fahrenheit to Celsius. - -- Follow the conversion formula `C = (F - 32) * 5/9`. - -```py -def fahrenheit_to_celsius(degrees): - return ((degrees - 32) * 5/9) -``` - -```py -fahrenheit_to_celsius(77) # 25.0 -``` +--- +title: fahrenheit_to_celsius +tags: math,beginner +unlisted: true +firstSeen: 2020-04-05T12:29:03+03:00 +lastUpdated: 2021-01-04T12:47:04+02:00 +--- + +Converts Fahrenheit to Celsius. + +- Follow the conversion formula `C = (F - 32) * 5/9`. + +```py +def fahrenheit_to_celsius(degrees): + return ((degrees - 32) * 5/9) +``` + +```py +fahrenheit_to_celsius(77) # 25.0 +``` diff --git a/snippets/fibonacci.md b/snippets/fibonacci.md index 7de53c697..c57356a5d 100644 --- a/snippets/fibonacci.md +++ b/snippets/fibonacci.md @@ -1,24 +1,26 @@ ---- -title: fibonacci -tags: math,list,intermediate ---- - -Generates a list, containing the Fibonacci sequence, up until the nth term. - -- Starting with `0` and `1`, use `list.append()` to add the sum of the last two numbers of the list to the end of the list, until the length of the list reaches `n`. -- If `n` is less or equal to `0`, return a list containing `0`. - -```py -def fibonacci(n): - if n <= 0: - return [0] - sequence = [0, 1] - while len(sequence) <= n: - next_value = sequence[len(sequence) - 1] + sequence[len(sequence) - 2] - sequence.append(next_value) - return sequence -``` - -```py -fibonacci(7) # [0, 1, 1, 2, 3, 5, 8, 13] -``` +--- +title: fibonacci +tags: math,list,intermediate +firstSeen: 2018-10-06T06:06:33+03:00 +lastUpdated: 2020-11-02T19:27:53+02:00 +--- + +Generates a list, containing the Fibonacci sequence, up until the nth term. + +- Starting with `0` and `1`, use `list.append()` to add the sum of the last two numbers of the list to the end of the list, until the length of the list reaches `n`. +- If `n` is less or equal to `0`, return a list containing `0`. + +```py +def fibonacci(n): + if n <= 0: + return [0] + sequence = [0, 1] + while len(sequence) <= n: + next_value = sequence[len(sequence) - 1] + sequence[len(sequence) - 2] + sequence.append(next_value) + return sequence +``` + +```py +fibonacci(7) # [0, 1, 1, 2, 3, 5, 8, 13] +``` diff --git a/snippets/filter_non_unique.md b/snippets/filter_non_unique.md index ac8178ce3..9c9f5d634 100644 --- a/snippets/filter_non_unique.md +++ b/snippets/filter_non_unique.md @@ -1,6 +1,8 @@ --- title: filter_non_unique tags: list,beginner +firstSeen: 2019-08-20T13:13:51+03:00 +lastUpdated: 2020-11-02T19:27:53+02:00 --- Creates a list with the non-unique values filtered out. diff --git a/snippets/filter_unique.md b/snippets/filter_unique.md index a4f9697d7..f5d8c3fe7 100644 --- a/snippets/filter_unique.md +++ b/snippets/filter_unique.md @@ -1,6 +1,8 @@ --- title: filter_unique tags: list,beginner +firstSeen: 2019-10-02T20:06:24+03:00 +lastUpdated: 2020-11-02T19:27:53+02:00 --- Creates a list with the unique values filtered out. diff --git a/snippets/find.md b/snippets/find.md index ac2c2f467..89b05bf1e 100644 --- a/snippets/find.md +++ b/snippets/find.md @@ -1,17 +1,19 @@ ---- -title: find -tags: list,beginner ---- - -Finds the value of the first element in the given list that satisfies the provided testing function. - -- Use a 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 -``` +--- +title: find +tags: list,beginner +firstSeen: 2020-03-10T22:38:48+02:00 +lastUpdated: 2020-11-02T19:27:53+02:00 +--- + +Finds the value of the first element in the given list that satisfies the provided testing function. + +- Use a 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 index 4ceac691a..2bf44ac4a 100644 --- a/snippets/find_index.md +++ b/snippets/find_index.md @@ -1,17 +1,19 @@ ---- -title: find_index -tags: list,intermediate ---- - -Finds the index of the first element in the given list that satisfies the provided testing function. - -- Use a 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 -``` +--- +title: find_index +tags: list,intermediate +firstSeen: 2020-03-10T22:38:48+02:00 +lastUpdated: 2020-11-02T19:27:53+02:00 +--- + +Finds the index of the first element in the given list that satisfies the provided testing function. + +- Use a 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_index_of_all.md b/snippets/find_index_of_all.md index 6bcda46a8..5701135de 100644 --- a/snippets/find_index_of_all.md +++ b/snippets/find_index_of_all.md @@ -1,6 +1,8 @@ --- title: find_index_of_all tags: list,intermediate +firstSeen: 2020-10-11T13:45:19+03:00 +lastUpdated: 2020-11-02T19:27:53+02:00 --- Finds the indexes of all elements in the given list that satisfy the provided testing function. diff --git a/snippets/find_key.md b/snippets/find_key.md index cd837fed9..b95fbb0bf 100644 --- a/snippets/find_key.md +++ b/snippets/find_key.md @@ -1,6 +1,8 @@ --- title: find_key tags: dictionary,intermediate +firstSeen: 2020-04-16T19:13:20+03:00 +lastUpdated: 2020-11-02T19:27:53+02:00 --- Finds the first key in the provided dictionary that has the given value. diff --git a/snippets/find_keys.md b/snippets/find_keys.md index dc1fb098e..63256dd1d 100644 --- a/snippets/find_keys.md +++ b/snippets/find_keys.md @@ -1,6 +1,8 @@ --- title: find_keys tags: dictionary,intermediate +firstSeen: 2020-04-16T19:17:13+03:00 +lastUpdated: 2020-11-02T19:27:53+02:00 --- Finds all keys in the provided dictionary that have the given value. diff --git a/snippets/find_last.md b/snippets/find_last.md index 9ead95a75..bbab175b2 100644 --- a/snippets/find_last.md +++ b/snippets/find_last.md @@ -1,17 +1,19 @@ ---- -title: find_last -tags: list,beginner ---- - -Finds the value of the last element in the given list that satisfies the provided testing function. - -- Use a 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 -``` +--- +title: find_last +tags: list,beginner +firstSeen: 2020-03-10T22:38:48+02:00 +lastUpdated: 2020-11-02T19:27:53+02:00 +--- + +Finds the value of the last element in the given list that satisfies the provided testing function. + +- Use a 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 index 369f71d60..9e87007e5 100644 --- a/snippets/find_last_index.md +++ b/snippets/find_last_index.md @@ -1,17 +1,19 @@ ---- -title: find_last_index -tags: list,beginner ---- - -Finds the index of the last element in the given list that satisfies the provided testing function. - -- Use a 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 -``` +--- +title: find_last_index +tags: list,beginner +firstSeen: 2020-03-10T22:38:48+02:00 +lastUpdated: 2020-11-02T19:27:53+02:00 +--- + +Finds the index of the last element in the given list that satisfies the provided testing function. + +- Use a 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 +``` diff --git a/snippets/find_parity_outliers.md b/snippets/find_parity_outliers.md index f90a9719a..f53d44a0f 100644 --- a/snippets/find_parity_outliers.md +++ b/snippets/find_parity_outliers.md @@ -1,6 +1,8 @@ --- title: find_parity_outliers tags: list,math,intermediate +firstSeen: 2020-01-08T18:54:35+02:00 +lastUpdated: 2020-11-02T19:27:53+02:00 --- Finds the items that are parity outliers in a given list. diff --git a/snippets/flatten.md b/snippets/flatten.md index ff11b6726..b220c86c3 100644 --- a/snippets/flatten.md +++ b/snippets/flatten.md @@ -1,6 +1,8 @@ --- title: flatten tags: list,intermediate +firstSeen: 2019-09-19T15:46:10+03:00 +lastUpdated: 2020-11-02T19:27:53+02:00 --- Flattens a list of lists once. diff --git a/snippets/for_each.md b/snippets/for_each.md index 16bb81070..5a95e9e31 100644 --- a/snippets/for_each.md +++ b/snippets/for_each.md @@ -1,18 +1,20 @@ ---- -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 -``` +--- +title: for_each +tags: list,beginner +firstSeen: 2020-03-15T12:54:08+02:00 +lastUpdated: 2020-09-15T16:13:06+03:00 +--- + +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 +``` diff --git a/snippets/for_each_right.md b/snippets/for_each_right.md index 819172931..be899ad37 100644 --- a/snippets/for_each_right.md +++ b/snippets/for_each_right.md @@ -1,18 +1,20 @@ ---- -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 -``` +--- +title: for_each_right +tags: list,beginner +firstSeen: 2020-03-15T12:54:08+02:00 +lastUpdated: 2020-09-15T16:13:06+03:00 +--- + +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 +``` diff --git a/snippets/frequencies.md b/snippets/frequencies.md index 6786a8983..0922c9210 100644 --- a/snippets/frequencies.md +++ b/snippets/frequencies.md @@ -1,23 +1,25 @@ ---- -title: frequencies -tags: list,intermediate ---- - -Creates a dictionary with the unique values of a list as keys and their frequencies as the values. - -- Use `collections.defaultdict()` to store the frequencies of each unique element. -- Use `dict()` to return a dictionary with the unique elements of the list as keys and their frequencies as the values. - -```py -from collections import defaultdict - -def frequencies(lst): - freq = defaultdict(int) - for val in lst: - freq[val] += 1 - return dict(freq) -``` - -```py -frequencies(['a', 'b', 'a', 'c', 'a', 'a', 'b']) # { 'a': 4, 'b': 2, 'c': 1 } -``` +--- +title: frequencies +tags: list,intermediate +firstSeen: 2020-03-15T12:54:08+02:00 +lastUpdated: 2020-11-02T19:27:53+02:00 +--- + +Creates a dictionary with the unique values of a list as keys and their frequencies as the values. + +- Use `collections.defaultdict()` to store the frequencies of each unique element. +- Use `dict()` to return a dictionary with the unique elements of the list as keys and their frequencies as the values. + +```py +from collections import defaultdict + +def frequencies(lst): + freq = defaultdict(int) + for val in lst: + freq[val] += 1 + return dict(freq) +``` + +```py +frequencies(['a', 'b', 'a', 'c', 'a', 'a', 'b']) # { 'a': 4, 'b': 2, 'c': 1 } +``` diff --git a/snippets/from_iso_date.md b/snippets/from_iso_date.md index d43d85c6f..ca22ecf75 100644 --- a/snippets/from_iso_date.md +++ b/snippets/from_iso_date.md @@ -1,6 +1,8 @@ --- title: from_iso_date tags: date,intermediate +firstSeen: 2020-10-28T16:20:04+02:00 +lastUpdated: 2021-01-07T23:30:28+02:00 --- Converts a date from its ISO-8601 representation. diff --git a/snippets/gcd.md b/snippets/gcd.md index 57a637044..f0f36a7f8 100644 --- a/snippets/gcd.md +++ b/snippets/gcd.md @@ -1,6 +1,8 @@ --- title: gcd tags: math,beginner +firstSeen: 2018-01-08T16:26:35+02:00 +lastUpdated: 2020-09-15T16:13:06+03:00 --- Calculates the greatest common divisor of a list of numbers. diff --git a/snippets/geometric_progression.md b/snippets/geometric_progression.md index 752768b86..e426ecd7c 100644 --- a/snippets/geometric_progression.md +++ b/snippets/geometric_progression.md @@ -1,6 +1,8 @@ --- title: geometric_progression tags: math,list,intermediate +firstSeen: 2020-10-04T12:19:28+03:00 +lastUpdated: 2020-11-02T19:28:05+02:00 --- Initializes a list containing the numbers in the specified range where `start` and `end` are inclusive and the ratio between two terms is `step`. diff --git a/snippets/get.md b/snippets/get.md index 4c0cfaa62..3c0080c46 100644 --- a/snippets/get.md +++ b/snippets/get.md @@ -1,6 +1,8 @@ --- title: get tags: dictionary,list,intermediate +firstSeen: 2020-10-28T12:21:39+02:00 +lastUpdated: 2020-10-28T12:21:39+02:00 --- Retrieves the value of the nested key indicated by the given selector list from a dictionary or list. diff --git a/snippets/group_by.md b/snippets/group_by.md index b7e030243..ca9ee3c19 100644 --- a/snippets/group_by.md +++ b/snippets/group_by.md @@ -1,6 +1,8 @@ --- title: group_by tags: list,dictionary,intermediate +firstSeen: 2019-08-20T13:29:00+03:00 +lastUpdated: 2020-11-02T19:28:05+02:00 --- Groups the elements of a list based on the given function. diff --git a/snippets/hamming_distance.md b/snippets/hamming_distance.md index 2e46b3d24..a78c83d70 100644 --- a/snippets/hamming_distance.md +++ b/snippets/hamming_distance.md @@ -1,19 +1,21 @@ ---- -title: hamming_distance -tags: math,intermediate ---- - -Calculates the Hamming distance between two values. - -- Use the XOR operator (`^`) to find the bit difference between the two numbers. -- Use `bin()` to convert the result to a binary string. -- Convert the string to a list and use `count()` of `str` class to count and return the number of `1`s in it. - -```py -def hamming_distance(a, b): - return bin(a ^ b).count('1') -``` - -```py -hamming_distance(2, 3) # 1 -``` +--- +title: hamming_distance +tags: math,intermediate +firstSeen: 2021-01-17T13:04:06+02:00 +lastUpdated: 2021-02-18T14:22:25+02:00 +--- + +Calculates the Hamming distance between two values. + +- Use the XOR operator (`^`) to find the bit difference between the two numbers. +- Use `bin()` to convert the result to a binary string. +- Convert the string to a list and use `count()` of `str` class to count and return the number of `1`s in it. + +```py +def hamming_distance(a, b): + return bin(a ^ b).count('1') +``` + +```py +hamming_distance(2, 3) # 1 +``` diff --git a/snippets/has_duplicates.md b/snippets/has_duplicates.md index a088344de..c8ee94f12 100644 --- a/snippets/has_duplicates.md +++ b/snippets/has_duplicates.md @@ -1,6 +1,8 @@ --- title: has_duplicates tags: list,beginner +firstSeen: 2018-04-01T11:03:09+03:00 +lastUpdated: 2020-11-02T19:28:05+02:00 --- Checks if there are duplicate values in a flat list. diff --git a/snippets/have_same_contents.md b/snippets/have_same_contents.md index 16d352926..7da8726f4 100644 --- a/snippets/have_same_contents.md +++ b/snippets/have_same_contents.md @@ -1,22 +1,24 @@ ---- -title: have_same_contents -tags: list,intermediate ---- - -Checks if two lists contain the same elements regardless of order. - -- 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 -``` +--- +title: have_same_contents +tags: list,intermediate +firstSeen: 2020-03-15T12:54:08+02:00 +lastUpdated: 2020-11-02T19:28:05+02:00 +--- + +Checks if two lists contain the same elements regardless of order. + +- 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 +``` diff --git a/snippets/head.md b/snippets/head.md index 4102080ca..4e8d17bcc 100644 --- a/snippets/head.md +++ b/snippets/head.md @@ -1,6 +1,8 @@ --- title: head tags: list,beginner +firstSeen: 2019-08-20T14:08:52+03:00 +lastUpdated: 2020-09-15T16:13:06+03:00 --- Returns the head of a list. diff --git a/snippets/hex_to_rgb.md b/snippets/hex_to_rgb.md index 1771d7085..d13af2c24 100644 --- a/snippets/hex_to_rgb.md +++ b/snippets/hex_to_rgb.md @@ -1,6 +1,8 @@ --- title: hex_to_rgb tags: string,math,intermediate +firstSeen: 2020-09-13T01:08:21+03:00 +lastUpdated: 2020-09-15T16:13:06+03:00 --- Converts a hexadecimal color code to a tuple of integers corresponding to its RGB components. diff --git a/snippets/in_range.md b/snippets/in_range.md index 97583523a..2b30bffae 100644 --- a/snippets/in_range.md +++ b/snippets/in_range.md @@ -1,6 +1,8 @@ --- title: in_range tags: math,beginner +firstSeen: 2019-08-20T13:41:40+03:00 +lastUpdated: 2020-09-15T16:13:06+03:00 --- Checks if the given number falls within the given range. diff --git a/snippets/includes_all.md b/snippets/includes_all.md index f102f423f..fdb5b8fbc 100644 --- a/snippets/includes_all.md +++ b/snippets/includes_all.md @@ -1,22 +1,24 @@ ---- -title: includes_all -tags: list,intermediate ---- - -Checks if all the elements in `values` are included in `lst`. - -- Check if every value in `values` is contained in `lst` using a `for` loop. -- Return `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 -``` +--- +title: includes_all +tags: list,intermediate +firstSeen: 2020-03-15T12:54:08+02:00 +lastUpdated: 2020-11-02T19:28:05+02:00 +--- + +Checks if all the elements in `values` are included in `lst`. + +- Check if every value in `values` is contained in `lst` using a `for` loop. +- Return `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 +``` diff --git a/snippets/includes_any.md b/snippets/includes_any.md index aef0d8e9d..e1310ab53 100644 --- a/snippets/includes_any.md +++ b/snippets/includes_any.md @@ -1,22 +1,24 @@ ---- -title: includes_any -tags: list,intermediate ---- - -Checks if any element in `values` is included in `lst`. - -- Check if any value in `values` is contained in `lst` using a `for` loop. -- Return `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 -``` +--- +title: includes_any +tags: list,intermediate +firstSeen: 2020-03-15T12:54:08+02:00 +lastUpdated: 2020-11-02T19:28:05+02:00 +--- + +Checks if any element in `values` is included in `lst`. + +- Check if any value in `values` is contained in `lst` using a `for` loop. +- Return `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 +``` diff --git a/snippets/index_of_all.md b/snippets/index_of_all.md index 08ba78fe9..0460427b3 100644 --- a/snippets/index_of_all.md +++ b/snippets/index_of_all.md @@ -1,6 +1,8 @@ --- title: index_of_all tags: list,intermediate +firstSeen: 2020-10-11T13:40:42+03:00 +lastUpdated: 2020-10-11T13:45:19+03:00 --- Returns a list of indexes of all the occurrences of an element in a list. diff --git a/snippets/initial.md b/snippets/initial.md index 2afa69374..a11f27c00 100644 --- a/snippets/initial.md +++ b/snippets/initial.md @@ -1,6 +1,8 @@ --- title: initial tags: list,beginner +firstSeen: 2019-08-20T14:08:52+03:00 +lastUpdated: 2020-11-02T19:28:05+02:00 --- Returns all the elements of a list except the last one. diff --git a/snippets/initialize_2d_list.md b/snippets/initialize_2d_list.md index a98aac79d..df9514269 100644 --- a/snippets/initialize_2d_list.md +++ b/snippets/initialize_2d_list.md @@ -1,6 +1,8 @@ --- title: initialize_2d_list tags: list,intermediate +firstSeen: 2019-10-25T10:11:51+03:00 +lastUpdated: 2020-11-02T19:28:05+02:00 --- Initializes a 2D list of given width and height and value. diff --git a/snippets/initialize_list_with_range.md b/snippets/initialize_list_with_range.md index f126a41f5..bc4501916 100644 --- a/snippets/initialize_list_with_range.md +++ b/snippets/initialize_list_with_range.md @@ -1,6 +1,8 @@ --- title: initialize_list_with_range tags: list,beginner +firstSeen: 2019-08-20T15:21:41+03:00 +lastUpdated: 2020-11-02T19:28:05+02:00 --- Initializes a list containing the numbers in the specified range where `start` and `end` are inclusive with their common difference `step`. diff --git a/snippets/initialize_list_with_values.md b/snippets/initialize_list_with_values.md index 6fe5aab73..9d8715fed 100644 --- a/snippets/initialize_list_with_values.md +++ b/snippets/initialize_list_with_values.md @@ -1,6 +1,8 @@ --- title: initialize_list_with_values tags: list,beginner +firstSeen: 2019-08-20T14:12:06+03:00 +lastUpdated: 2020-11-02T19:28:05+02:00 --- Initializes and fills a list with the specified value. diff --git a/snippets/intersection.md b/snippets/intersection.md index 5a1766023..6d1a18996 100644 --- a/snippets/intersection.md +++ b/snippets/intersection.md @@ -1,6 +1,8 @@ --- title: intersection tags: list,beginner +firstSeen: 2019-08-20T15:14:26+03:00 +lastUpdated: 2020-11-02T19:28:05+02:00 --- Returns a list of elements that exist in both lists. diff --git a/snippets/intersection_by.md b/snippets/intersection_by.md index ceedde049..5ad79f54c 100644 --- a/snippets/intersection_by.md +++ b/snippets/intersection_by.md @@ -1,6 +1,8 @@ --- title: intersection_by tags: list,function,intermediate +firstSeen: 2019-08-20T15:16:27+03:00 +lastUpdated: 2020-11-02T19:28:05+02:00 --- Returns a list of elements that exist in both lists, after applying the provided function to each list element of both. diff --git a/snippets/invert_dictionary.md b/snippets/invert_dictionary.md index e8c3a37aa..0f0b9e23f 100644 --- a/snippets/invert_dictionary.md +++ b/snippets/invert_dictionary.md @@ -1,6 +1,8 @@ --- title: invert_dictionary tags: dictionary,intermediate +firstSeen: 2020-04-07T21:13:32+03:00 +lastUpdated: 2020-11-02T19:28:05+02:00 --- Inverts a dictionary with unique hashable values. diff --git a/snippets/is_anagram.md b/snippets/is_anagram.md index c84a38c1e..733e022c8 100644 --- a/snippets/is_anagram.md +++ b/snippets/is_anagram.md @@ -1,6 +1,8 @@ --- title: is_anagram tags: string,intermediate +firstSeen: 2018-10-01T13:17:29+03:00 +lastUpdated: 2020-11-02T19:28:05+02:00 --- Checks if a string is an anagram of another string (case-insensitive, ignores spaces, punctuation and special characters). diff --git a/snippets/is_contained_in.md b/snippets/is_contained_in.md index 6db48c412..76d1a3718 100644 --- a/snippets/is_contained_in.md +++ b/snippets/is_contained_in.md @@ -1,21 +1,23 @@ ---- -title: is_contained_in -tags: list,intermediate ---- - -Checks if the elements of the first list are contained in the second one regardless of order. - -- Use `count()` to check if any value in `a` has more occurrences than it has in `b`. -- Return `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 -``` +--- +title: is_contained_in +tags: list,intermediate +firstSeen: 2020-03-16T19:48:15+02:00 +lastUpdated: 2021-01-07T23:30:28+02:00 +--- + +Checks if the elements of the first list are contained in the second one regardless of order. + +- Use `count()` to check if any value in `a` has more occurrences than it has in `b`. +- Return `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/is_divisible.md b/snippets/is_divisible.md index 33c668408..36ea7d4cd 100644 --- a/snippets/is_divisible.md +++ b/snippets/is_divisible.md @@ -2,6 +2,8 @@ title: is_divisible tags: math,beginner unlisted: true +firstSeen: 2019-08-20T14:19:55+03:00 +lastUpdated: 2021-01-04T12:47:04+02:00 --- Checks if the first numeric argument is divisible by the second one. diff --git a/snippets/is_even.md b/snippets/is_even.md index 32ab8a84e..f8997c655 100644 --- a/snippets/is_even.md +++ b/snippets/is_even.md @@ -2,6 +2,8 @@ title: is_even tags: math,beginner unlisted: true +firstSeen: 2019-08-20T14:21:44+03:00 +lastUpdated: 2021-01-04T12:47:04+02:00 --- Checks if the given number is even. diff --git a/snippets/is_odd.md b/snippets/is_odd.md index 4519d4ce6..cc4559b48 100644 --- a/snippets/is_odd.md +++ b/snippets/is_odd.md @@ -2,6 +2,8 @@ title: is_odd tags: math,beginner unlisted: true +firstSeen: 2019-08-20T14:21:44+03:00 +lastUpdated: 2021-01-04T12:47:04+02:00 --- Checks if the given number is odd. diff --git a/snippets/is_prime.md b/snippets/is_prime.md index 1e2bf61e6..9eac36c2e 100644 --- a/snippets/is_prime.md +++ b/snippets/is_prime.md @@ -1,6 +1,8 @@ --- title: is_prime tags: math,intermediate +firstSeen: 2020-10-03T18:03:32+03:00 +lastUpdated: 2020-11-02T19:28:05+02:00 --- Checks if the provided integer is a prime number. diff --git a/snippets/is_weekday.md b/snippets/is_weekday.md index da0b6b55e..68c77c725 100644 --- a/snippets/is_weekday.md +++ b/snippets/is_weekday.md @@ -1,6 +1,8 @@ --- title: is_weekday tags: date,beginner +firstSeen: 2020-10-28T16:20:18+02:00 +lastUpdated: 2020-11-02T19:28:05+02:00 --- Checks if the given date is a weekday. diff --git a/snippets/is_weekend.md b/snippets/is_weekend.md index 8e7d0aa01..ab141c969 100644 --- a/snippets/is_weekend.md +++ b/snippets/is_weekend.md @@ -1,6 +1,8 @@ --- title: is_weekend tags: date,beginner +firstSeen: 2020-10-28T16:20:27+02:00 +lastUpdated: 2020-11-02T19:28:05+02:00 --- Checks if the given date is a weekend. diff --git a/snippets/kebab.md b/snippets/kebab.md index 32caf503b..50cf2602a 100644 --- a/snippets/kebab.md +++ b/snippets/kebab.md @@ -1,6 +1,8 @@ --- title: kebab tags: string,regexp,intermediate +firstSeen: 2019-08-21T08:59:54+03:00 +lastUpdated: 2020-11-02T19:28:05+02:00 --- Converts a string to kebab case. diff --git a/snippets/key_in_dict.md b/snippets/key_in_dict.md index 24c33423f..81dd8093d 100644 --- a/snippets/key_in_dict.md +++ b/snippets/key_in_dict.md @@ -1,6 +1,8 @@ --- title: key_in_dict tags: dictionary,beginner +firstSeen: 2020-10-16T21:30:49+03:00 +lastUpdated: 2020-10-16T21:30:49+03:00 --- Checks if the given key exists in a dictionary. diff --git a/snippets/key_of_max.md b/snippets/key_of_max.md index 6d1b56e5d..dd760cb41 100644 --- a/snippets/key_of_max.md +++ b/snippets/key_of_max.md @@ -1,17 +1,19 @@ ---- -title: key_of_max -tags: dictionary,beginner ---- - -Finds the key of the maximum value in a dictionary. - -- Use `max()` with the `key` parameter set to `dict.get()` to find and return the key of the maximum value in the given dictionary. - -```py -def key_of_max(d): - return max(d, key = d.get) -``` - -```py -key_of_max({'a':4, 'b':0, 'c':13}) # c -``` +--- +title: key_of_max +tags: dictionary,beginner +firstSeen: 2021-01-07T23:15:48+02:00 +lastUpdated: 2021-01-07T23:15:48+02:00 +--- + +Finds the key of the maximum value in a dictionary. + +- Use `max()` with the `key` parameter set to `dict.get()` to find and return the key of the maximum value in the given dictionary. + +```py +def key_of_max(d): + return max(d, key = d.get) +``` + +```py +key_of_max({'a':4, 'b':0, 'c':13}) # c +``` diff --git a/snippets/key_of_min.md b/snippets/key_of_min.md index f39ad5f27..402e5c519 100644 --- a/snippets/key_of_min.md +++ b/snippets/key_of_min.md @@ -1,17 +1,19 @@ ---- -title: key_of_min -tags: dictionary,beginner ---- - -Finds the key of the minimum value in a dictionary. - -- Use `min()` with the `key` parameter set to `dict.get()` to find and return the key of the minimum value in the given dictionary. - -```py -def key_of_min(d): - return min(d, key = d.get) -``` - -```py -key_of_min({'a':4, 'b':0, 'c':13}) # b -``` +--- +title: key_of_min +tags: dictionary,beginner +firstSeen: 2021-01-07T23:15:48+02:00 +lastUpdated: 2021-01-07T23:15:48+02:00 +--- + +Finds the key of the minimum value in a dictionary. + +- Use `min()` with the `key` parameter set to `dict.get()` to find and return the key of the minimum value in the given dictionary. + +```py +def key_of_min(d): + return min(d, key = d.get) +``` + +```py +key_of_min({'a':4, 'b':0, 'c':13}) # b +``` diff --git a/snippets/keys_only.md b/snippets/keys_only.md index f7c1c5fc2..138f67837 100644 --- a/snippets/keys_only.md +++ b/snippets/keys_only.md @@ -1,6 +1,8 @@ --- title: keys_only tags: dictionary,list,beginner +firstSeen: 2018-04-01T23:56:31+03:00 +lastUpdated: 2020-11-02T19:28:05+02:00 --- Creates a flat list of all the keys in a flat dictionary. diff --git a/snippets/km_to_miles.md b/snippets/km_to_miles.md index b094d5799..c371fa544 100644 --- a/snippets/km_to_miles.md +++ b/snippets/km_to_miles.md @@ -2,6 +2,8 @@ title: km_to_miles tags: math,beginner unlisted: true +firstSeen: 2020-10-04T00:23:49+03:00 +lastUpdated: 2021-01-04T12:47:04+02:00 --- Converts kilometers to miles. diff --git a/snippets/last.md b/snippets/last.md index c8bd073b9..4baebaa01 100644 --- a/snippets/last.md +++ b/snippets/last.md @@ -1,6 +1,8 @@ --- title: last tags: list,beginner +firstSeen: 2019-08-20T15:11:47+03:00 +lastUpdated: 2020-11-02T19:28:05+02:00 --- Returns the last element in a list. diff --git a/snippets/lcm.md b/snippets/lcm.md index 6b82acc1d..1817eb26f 100644 --- a/snippets/lcm.md +++ b/snippets/lcm.md @@ -1,6 +1,8 @@ --- title: lcm tags: math,list,intermediate +firstSeen: 2018-01-08T22:30:17+02:00 +lastUpdated: 2020-11-02T19:31:15+02:00 --- Returns the least common multiple of a list of numbers. diff --git a/snippets/longest_item.md b/snippets/longest_item.md index cf3ad527e..020da40bf 100644 --- a/snippets/longest_item.md +++ b/snippets/longest_item.md @@ -1,6 +1,8 @@ --- title: longest_item tags: list,string,intermediate +firstSeen: 2019-08-20T15:27:49+03:00 +lastUpdated: 2020-11-02T19:28:05+02:00 --- Takes any number of iterable objects or objects with a length property and returns the longest one. diff --git a/snippets/map_dictionary.md b/snippets/map_dictionary.md index 7cf6adc9a..b1a69a361 100644 --- a/snippets/map_dictionary.md +++ b/snippets/map_dictionary.md @@ -1,6 +1,8 @@ --- title: map_dictionary tags: list,dictionary,intermediate +firstSeen: 2020-04-07T19:53:48+03:00 +lastUpdated: 2020-11-02T19:28:27+02:00 --- 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. diff --git a/snippets/map_values.md b/snippets/map_values.md index ec40971cb..92be4ce49 100644 --- a/snippets/map_values.md +++ b/snippets/map_values.md @@ -1,6 +1,8 @@ --- title: map_values tags: dictionary,intermediate +firstSeen: 2019-08-20T15:34:30+03:00 +lastUpdated: 2020-11-02T19:28:27+02:00 --- Creates a dictionary with the same keys as the provided dictionary and values generated by running the provided function for each value. diff --git a/snippets/max_by.md b/snippets/max_by.md index 1d619d9de..f49f5d20b 100644 --- a/snippets/max_by.md +++ b/snippets/max_by.md @@ -1,6 +1,8 @@ --- title: max_by tags: math,list,beginner +firstSeen: 2019-08-20T15:42:41+03:00 +lastUpdated: 2020-11-02T19:28:27+02:00 --- Returns the maximum value of a list, after mapping each element to a value using the provided function. diff --git a/snippets/max_element_index.md b/snippets/max_element_index.md index fc9d02a8f..13acfb3d2 100644 --- a/snippets/max_element_index.md +++ b/snippets/max_element_index.md @@ -1,17 +1,19 @@ ---- -title: max_element_index -tags: math,list,beginner ---- - -Returns the index of the element with the maximum value in a list. - -- Use `max()` and `list.index()` to get the maximum value in the list and return its index. - -```py -def max_element_index(arr): - return arr.index(max(arr)) -``` - -```py -max_element_index([5, 8, 9, 7, 10, 3, 0]) # 4 -``` +--- +title: max_element_index +tags: math,list,beginner +firstSeen: 2019-10-31T09:42:21+02:00 +lastUpdated: 2020-11-02T19:28:27+02:00 +--- + +Returns the index of the element with the maximum value in a list. + +- Use `max()` and `list.index()` to get the maximum value in the list and return its index. + +```py +def max_element_index(arr): + return arr.index(max(arr)) +``` + +```py +max_element_index([5, 8, 9, 7, 10, 3, 0]) # 4 +``` diff --git a/snippets/max_n.md b/snippets/max_n.md index 9e1269c16..1958b1cc0 100644 --- a/snippets/max_n.md +++ b/snippets/max_n.md @@ -1,6 +1,8 @@ --- title: max_n tags: list,math,beginner +firstSeen: 2018-01-19T11:25:28+02:00 +lastUpdated: 2020-11-02T19:28:27+02:00 --- Returns the `n` maximum elements from the provided list. diff --git a/snippets/median.md b/snippets/median.md index d329ab88a..428f0875d 100644 --- a/snippets/median.md +++ b/snippets/median.md @@ -1,6 +1,8 @@ --- title: median tags: math,beginner +firstSeen: 2019-10-03T12:02:17+03:00 +lastUpdated: 2020-11-02T19:28:27+02:00 --- Finds the median of a list of numbers. diff --git a/snippets/merge.md b/snippets/merge.md index 5e200ebaa..3f2c08df7 100644 --- a/snippets/merge.md +++ b/snippets/merge.md @@ -1,6 +1,8 @@ --- title: merge tags: list,advanced +firstSeen: 2020-04-13T19:09:12+03:00 +lastUpdated: 2020-11-02T19:28:27+02:00 --- Merges two or more lists into a list of lists, combining elements from each of the input lists based on their positions. diff --git a/snippets/merge_dictionaries.md b/snippets/merge_dictionaries.md index a0d18f47b..d6f640de3 100644 --- a/snippets/merge_dictionaries.md +++ b/snippets/merge_dictionaries.md @@ -1,6 +1,8 @@ --- title: merge_dictionaries tags: dictionary,intermediate +firstSeen: 2020-04-16T19:28:35+03:00 +lastUpdated: 2020-11-02T19:28:27+02:00 --- Merges two or more dictionaries. diff --git a/snippets/miles_to_km.md b/snippets/miles_to_km.md index 140b48b0a..f10fcd38c 100644 --- a/snippets/miles_to_km.md +++ b/snippets/miles_to_km.md @@ -2,6 +2,8 @@ title: miles_to_km tags: math,beginner unlisted: true +firstSeen: 2020-10-04T00:24:01+03:00 +lastUpdated: 2021-01-04T12:47:04+02:00 --- Converts miles to kilometers. diff --git a/snippets/min_by.md b/snippets/min_by.md index 289aba7ed..c6ae5ab9d 100644 --- a/snippets/min_by.md +++ b/snippets/min_by.md @@ -1,6 +1,8 @@ --- title: min_by tags: math,list,beginner +firstSeen: 2019-08-20T15:42:41+03:00 +lastUpdated: 2020-11-02T19:28:27+02:00 --- Returns the minimum value of a list, after mapping each element to a value using the provided function. diff --git a/snippets/min_element_index.md b/snippets/min_element_index.md index 279f30d17..41765a5ee 100644 --- a/snippets/min_element_index.md +++ b/snippets/min_element_index.md @@ -1,6 +1,8 @@ --- title: min_element_index tags: math,list,beginner +firstSeen: 2020-10-05T22:32:00+03:00 +lastUpdated: 2020-11-02T19:28:27+02:00 --- Returns the index of the element with the minimum value in a list. diff --git a/snippets/min_n.md b/snippets/min_n.md index dccf3ad24..d7ee9243f 100644 --- a/snippets/min_n.md +++ b/snippets/min_n.md @@ -1,6 +1,8 @@ --- title: min_n tags: list,math,beginner +firstSeen: 2018-01-19T11:25:28+02:00 +lastUpdated: 2020-11-02T19:28:27+02:00 --- Returns the `n` minimum elements from the provided list. diff --git a/snippets/months_diff.md b/snippets/months_diff.md index 4c8a70e3e..4506c4459 100644 --- a/snippets/months_diff.md +++ b/snippets/months_diff.md @@ -1,6 +1,8 @@ --- title: months_diff tags: date,beginner +firstSeen: 2020-10-28T16:20:39+02:00 +lastUpdated: 2020-10-28T16:20:39+02:00 --- Calculates the month difference between two dates. diff --git a/snippets/most_frequent.md b/snippets/most_frequent.md index fea931a72..06c76c1dc 100644 --- a/snippets/most_frequent.md +++ b/snippets/most_frequent.md @@ -1,6 +1,8 @@ --- title: most_frequent tags: list,beginner +firstSeen: 2019-10-12T00:40:49+03:00 +lastUpdated: 2020-11-02T19:28:27+02:00 --- Returns the most frequent element in a list. diff --git a/snippets/n_times_string.md b/snippets/n_times_string.md index 0a995a7b6..ee75a0fc3 100644 --- a/snippets/n_times_string.md +++ b/snippets/n_times_string.md @@ -1,17 +1,19 @@ ---- -title: n_times_string -tags: string,beginner ---- - -Generates a string with the given string value repeated `n` number of times. - -- Repeat the string `n` times, using the `*` operator. - -```py -def n_times_string(s, n): - return (s * n) -``` - -```py -n_times_string('py', 4) #'pypypypy' -``` +--- +title: n_times_string +tags: string,beginner +firstSeen: 2019-09-27T10:07:25+03:00 +lastUpdated: 2020-11-02T19:28:27+02:00 +--- + +Generates a string with the given string value repeated `n` number of times. + +- Repeat the string `n` times, using the `*` operator. + +```py +def n_times_string(s, n): + return (s * n) +``` + +```py +n_times_string('py', 4) #'pypypypy' +``` diff --git a/snippets/none.md b/snippets/none.md index 019aa1aa0..7b64d0272 100644 --- a/snippets/none.md +++ b/snippets/none.md @@ -1,6 +1,8 @@ --- title: none tags: list,intermediate +firstSeen: 2019-08-20T15:54:50+03:00 +lastUpdated: 2020-11-02T19:28:27+02:00 --- Checks if the provided function returns `True` for at least one element in the list. diff --git a/snippets/num_to_range.md b/snippets/num_to_range.md index 30f045837..b83dcc8c0 100644 --- a/snippets/num_to_range.md +++ b/snippets/num_to_range.md @@ -1,6 +1,8 @@ --- title: num_to_range tags: math,beginner +firstSeen: 2020-10-04T12:43:57+03:00 +lastUpdated: 2021-04-05T18:25:46+03:00 --- Maps a number from one range to another range. diff --git a/snippets/offset.md b/snippets/offset.md index ef1132f73..787bcc1e2 100644 --- a/snippets/offset.md +++ b/snippets/offset.md @@ -1,6 +1,8 @@ --- title: offset tags: list,beginner +firstSeen: 2019-08-20T15:53:15+03:00 +lastUpdated: 2020-11-02T19:28:27+02:00 --- Moves the specified amount of elements to the end of the list. diff --git a/snippets/pad.md b/snippets/pad.md index 8a9f70214..964c07391 100644 --- a/snippets/pad.md +++ b/snippets/pad.md @@ -1,22 +1,24 @@ ---- -title: pad -tags: string,beginner ---- - -Pads a string on both sides with the specified character, if it's shorter than the specified length. - -- Use `str.ljust()` and `str.rjust()` to pad both sides of the given string. -- Omit the third argument, `char`, to use the whitespace character as the default padding character. - -```py -from math import floor - -def pad(s, length, char = ' '): - return s.rjust(floor((len(s) + length)/2), char).ljust(length, char) -``` - -```py -pad('cat', 8) # ' cat ' -pad('42', 6, '0') # '004200' -pad('foobar', 3) # 'foobar' -``` +--- +title: pad +tags: string,beginner +firstSeen: 2020-10-04T01:53:05+03:00 +lastUpdated: 2020-10-04T01:53:05+03:00 +--- + +Pads a string on both sides with the specified character, if it's shorter than the specified length. + +- Use `str.ljust()` and `str.rjust()` to pad both sides of the given string. +- Omit the third argument, `char`, to use the whitespace character as the default padding character. + +```py +from math import floor + +def pad(s, length, char = ' '): + return s.rjust(floor((len(s) + length)/2), char).ljust(length, char) +``` + +```py +pad('cat', 8) # ' cat ' +pad('42', 6, '0') # '004200' +pad('foobar', 3) # 'foobar' +``` diff --git a/snippets/pad_number.md b/snippets/pad_number.md index b96f1d7d3..767725662 100644 --- a/snippets/pad_number.md +++ b/snippets/pad_number.md @@ -1,6 +1,8 @@ --- title: pad_number tags: string,math,beginner +firstSeen: 2020-10-04T01:42:19+03:00 +lastUpdated: 2020-11-02T19:28:27+02:00 --- Pads a given number to the specified length. diff --git a/snippets/palindrome.md b/snippets/palindrome.md index 9ce5cf975..faf920b94 100644 --- a/snippets/palindrome.md +++ b/snippets/palindrome.md @@ -1,6 +1,8 @@ --- title: palindrome tags: string,intermediate +firstSeen: 2018-02-01T10:19:59+02:00 +lastUpdated: 2020-11-02T19:28:27+02:00 --- Checks if the given string is a palindrome. diff --git a/snippets/pluck.md b/snippets/pluck.md index 492023412..dd08a8714 100644 --- a/snippets/pluck.md +++ b/snippets/pluck.md @@ -1,23 +1,25 @@ ---- -title: pluck -tags: list,dictionary,beginner ---- - -Converts a list of dictionaries into a list of values corresponding to the specified `key`. - -- Use a list comprehension and `dict.get()` to get the value of `key` for each dictionary in `lst`. - -```py -def pluck(lst, key): - return [x.get(key) for x in lst] -``` - -```py -simpsons = [ - { 'name': 'lisa', 'age': 8 }, - { 'name': 'homer', 'age': 36 }, - { 'name': 'marge', 'age': 34 }, - { 'name': 'bart', 'age': 10 } -] -pluck(simpsons, 'age') # [8, 36, 34, 10] -``` +--- +title: pluck +tags: list,dictionary,beginner +firstSeen: 2020-10-22T03:49:25+03:00 +lastUpdated: 2020-10-22T10:09:44+03:00 +--- + +Converts a list of dictionaries into a list of values corresponding to the specified `key`. + +- Use a list comprehension and `dict.get()` to get the value of `key` for each dictionary in `lst`. + +```py +def pluck(lst, key): + return [x.get(key) for x in lst] +``` + +```py +simpsons = [ + { 'name': 'lisa', 'age': 8 }, + { 'name': 'homer', 'age': 36 }, + { 'name': 'marge', 'age': 34 }, + { 'name': 'bart', 'age': 10 } +] +pluck(simpsons, 'age') # [8, 36, 34, 10] +``` diff --git a/snippets/powerset.md b/snippets/powerset.md index 181301f5f..c43241e06 100644 --- a/snippets/powerset.md +++ b/snippets/powerset.md @@ -1,22 +1,24 @@ ---- -title: powerset -tags: math,list,advanced ---- - -Returns the powerset of a given iterable. - -- Use `list()` to convert the given value to a list. -- Use `range()` and `itertools.combinations()` to create a generator that returns all subsets. -- Use `itertools.chain.from_iterable()` and `list()` to consume the generator and return a list. - -```py -from itertools import chain, combinations - -def powerset(iterable): - s = list(iterable) - return list(chain.from_iterable(combinations(s, r) for r in range(len(s)+1))) -``` - -```py -powerset([1, 2]) # [(), (1,), (2,), (1, 2)] -``` +--- +title: powerset +tags: math,list,advanced +firstSeen: 2020-10-04T13:14:01+03:00 +lastUpdated: 2020-11-02T19:28:27+02:00 +--- + +Returns the powerset of a given iterable. + +- Use `list()` to convert the given value to a list. +- Use `range()` and `itertools.combinations()` to create a generator that returns all subsets. +- Use `itertools.chain.from_iterable()` and `list()` to consume the generator and return a list. + +```py +from itertools import chain, combinations + +def powerset(iterable): + s = list(iterable) + return list(chain.from_iterable(combinations(s, r) for r in range(len(s)+1))) +``` + +```py +powerset([1, 2]) # [(), (1,), (2,), (1, 2)] +``` diff --git a/snippets/rads_to_degrees.md b/snippets/rads_to_degrees.md index a0c6b0334..845382391 100644 --- a/snippets/rads_to_degrees.md +++ b/snippets/rads_to_degrees.md @@ -1,6 +1,8 @@ --- title: rads_to_degrees tags: math,beginner +firstSeen: 2019-08-20T15:58:57+03:00 +lastUpdated: 2020-11-02T19:28:27+02:00 --- Converts an angle from radians to degrees. diff --git a/snippets/reverse.md b/snippets/reverse.md index 8c19c1791..6586b1b70 100644 --- a/snippets/reverse.md +++ b/snippets/reverse.md @@ -1,6 +1,8 @@ --- title: reverse tags: list,string,beginner +firstSeen: 2020-10-06T19:02:30+03:00 +lastUpdated: 2020-11-02T19:28:27+02:00 --- Reverses a list or a string. diff --git a/snippets/reverse_number.md b/snippets/reverse_number.md index ccbe8e662..63e693f90 100644 --- a/snippets/reverse_number.md +++ b/snippets/reverse_number.md @@ -1,6 +1,8 @@ --- title: reverse_number tags: math,intermediate +firstSeen: 2020-10-04T14:21:41+03:00 +lastUpdated: 2020-11-02T19:28:27+02:00 --- Reverses a number. diff --git a/snippets/rgb_to_hex.md b/snippets/rgb_to_hex.md index 749952459..b007dc09d 100644 --- a/snippets/rgb_to_hex.md +++ b/snippets/rgb_to_hex.md @@ -1,6 +1,8 @@ --- title: rgb_to_hex tags: string,math,intermediate +firstSeen: 2020-09-13T01:08:00+03:00 +lastUpdated: 2020-11-02T19:28:27+02:00 --- Converts the values of RGB components to a hexadecimal color code. diff --git a/snippets/roll.md b/snippets/roll.md index fbfe3c643..7def092c0 100644 --- a/snippets/roll.md +++ b/snippets/roll.md @@ -1,6 +1,8 @@ --- title: roll tags: list,beginner +firstSeen: 2020-11-02T19:15:44+02:00 +lastUpdated: 2020-11-02T19:15:44+02:00 --- Moves the specified amount of elements to the start of the list. diff --git a/snippets/sample.md b/snippets/sample.md index d8f43d0ea..05a6a2f18 100644 --- a/snippets/sample.md +++ b/snippets/sample.md @@ -1,6 +1,8 @@ --- title: sample tags: list,random,beginner +firstSeen: 2019-08-20T16:02:37+03:00 +lastUpdated: 2020-10-28T11:45:34+02:00 --- Returns a random element from a list. diff --git a/snippets/shuffle.md b/snippets/shuffle.md index 5c6c1fbbf..1a84c129b 100644 --- a/snippets/shuffle.md +++ b/snippets/shuffle.md @@ -1,6 +1,8 @@ --- title: shuffle tags: list,random,advanced +firstSeen: 2018-01-19T11:59:33+02:00 +lastUpdated: 2020-11-02T19:28:35+02:00 --- Randomizes the order of the values of an list, returning a new list. diff --git a/snippets/similarity.md b/snippets/similarity.md index 7c3d3e117..3eb5706b3 100644 --- a/snippets/similarity.md +++ b/snippets/similarity.md @@ -1,6 +1,8 @@ --- title: similarity tags: list,beginner +firstSeen: 2019-08-20T16:12:11+03:00 +lastUpdated: 2020-11-02T19:28:35+02:00 --- Returns a list of elements that exist in both lists. diff --git a/snippets/slugify.md b/snippets/slugify.md index b807564e9..97de6c7db 100644 --- a/snippets/slugify.md +++ b/snippets/slugify.md @@ -1,24 +1,26 @@ ---- -title: slugify -tags: string,regexp,intermediate ---- - -Converts a string to a URL-friendly slug. - -- Use `str.lower()` and `str.strip()` to normalize the input string. -- Use `re.sub()` to to replace spaces, dashes and underscores with `-` and remove special characters. - -```py -import re - -def slugify(s): - s = s.lower().strip() - s = re.sub(r'[^\w\s-]', '', s) - s = re.sub(r'[\s_-]+', '-', s) - s = re.sub(r'^-+|-+$', '', s) - return s -``` - -```py -slugify('Hello World!') # 'hello-world' -``` +--- +title: slugify +tags: string,regexp,intermediate +firstSeen: 2020-10-05T21:57:34+03:00 +lastUpdated: 2020-10-25T12:43:20+02:00 +--- + +Converts a string to a URL-friendly slug. + +- Use `str.lower()` and `str.strip()` to normalize the input string. +- Use `re.sub()` to to replace spaces, dashes and underscores with `-` and remove special characters. + +```py +import re + +def slugify(s): + s = s.lower().strip() + s = re.sub(r'[^\w\s-]', '', s) + s = re.sub(r'[\s_-]+', '-', s) + s = re.sub(r'^-+|-+$', '', s) + return s +``` + +```py +slugify('Hello World!') # 'hello-world' +``` diff --git a/snippets/snake.md b/snippets/snake.md index 5a19b3152..56ac8e45f 100644 --- a/snippets/snake.md +++ b/snippets/snake.md @@ -1,6 +1,8 @@ --- title: snake tags: string,regexp,intermediate +firstSeen: 2019-08-21T08:59:54+03:00 +lastUpdated: 2020-11-02T19:28:35+02:00 --- Converts a string to snake case. diff --git a/snippets/some.md b/snippets/some.md index 283cef604..cb06e3645 100644 --- a/snippets/some.md +++ b/snippets/some.md @@ -1,6 +1,8 @@ --- title: some tags: list,intermediate +firstSeen: 2019-08-20T11:42:30+03:00 +lastUpdated: 2020-11-02T19:28:35+02:00 --- Checks if the provided function returns `True` for at least one element in the list. diff --git a/snippets/sort_by_indexes.md b/snippets/sort_by_indexes.md index e227e096e..5c34f9cd2 100644 --- a/snippets/sort_by_indexes.md +++ b/snippets/sort_by_indexes.md @@ -1,24 +1,26 @@ ---- -title: sort_by_indexes -tags: list,intermediate ---- - -Sorts one list based on another list containing the desired indexes. - -- Use `zip()` and `sorted()` to combine and sort the two lists, based on the values of `indexes`. -- Use a list comprehension to get the first element of each pair from the result. -- Use the `reverse` parameter in `sorted()` to sort the dictionary in reverse order, based on the third argument. - -```py -def sort_by_indexes(lst, indexes, reverse=False): - return [val for (_, val) in sorted(zip(indexes, lst), key=lambda x: \ - x[0], reverse=reverse)] -``` - -```py -a = ['eggs', 'bread', 'oranges', 'jam', 'apples', 'milk'] -b = [3, 2, 6, 4, 1, 5] -sort_by_indexes(a, b) # ['apples', 'bread', 'eggs', 'jam', 'milk', 'oranges'] -sort_by_indexes(a, b, True) -# ['oranges', 'milk', 'jam', 'eggs', 'bread', 'apples'] -``` +--- +title: sort_by_indexes +tags: list,intermediate +firstSeen: 2020-09-07T09:58:39+03:00 +lastUpdated: 2020-11-02T19:28:35+02:00 +--- + +Sorts one list based on another list containing the desired indexes. + +- Use `zip()` and `sorted()` to combine and sort the two lists, based on the values of `indexes`. +- Use a list comprehension to get the first element of each pair from the result. +- Use the `reverse` parameter in `sorted()` to sort the dictionary in reverse order, based on the third argument. + +```py +def sort_by_indexes(lst, indexes, reverse=False): + return [val for (_, val) in sorted(zip(indexes, lst), key=lambda x: \ + x[0], reverse=reverse)] +``` + +```py +a = ['eggs', 'bread', 'oranges', 'jam', 'apples', 'milk'] +b = [3, 2, 6, 4, 1, 5] +sort_by_indexes(a, b) # ['apples', 'bread', 'eggs', 'jam', 'milk', 'oranges'] +sort_by_indexes(a, b, True) +# ['oranges', 'milk', 'jam', 'eggs', 'bread', 'apples'] +``` diff --git a/snippets/sort_dict_by_key.md b/snippets/sort_dict_by_key.md index b5d5b7611..d3371f1c6 100644 --- a/snippets/sort_dict_by_key.md +++ b/snippets/sort_dict_by_key.md @@ -1,6 +1,8 @@ --- title: sort_dict_by_key tags: dictionary,intermediate +firstSeen: 2020-10-16T21:24:33+03:00 +lastUpdated: 2020-11-02T19:28:35+02:00 --- Sorts the given dictionary by key. diff --git a/snippets/sort_dict_by_value.md b/snippets/sort_dict_by_value.md index 9bcd0d6f5..1bc807b81 100644 --- a/snippets/sort_dict_by_value.md +++ b/snippets/sort_dict_by_value.md @@ -1,6 +1,8 @@ --- title: sort_dict_by_value tags: dictionary,intermediate +firstSeen: 2020-10-16T21:25:19+03:00 +lastUpdated: 2021-01-08T00:56:50+02:00 --- Sorts the given dictionary by value. diff --git a/snippets/split_lines.md b/snippets/split_lines.md index e447c7b1a..e4e2adffc 100644 --- a/snippets/split_lines.md +++ b/snippets/split_lines.md @@ -1,6 +1,8 @@ --- title: split_lines tags: string,beginner +firstSeen: 2019-08-20T16:15:15+03:00 +lastUpdated: 2020-11-02T19:28:35+02:00 --- Splits a multiline string into a list of lines. diff --git a/snippets/spread.md b/snippets/spread.md index 703091b6e..8a4ea0950 100644 --- a/snippets/spread.md +++ b/snippets/spread.md @@ -1,6 +1,8 @@ --- title: spread tags: list,intermediate +firstSeen: 2018-01-08T22:38:05+02:00 +lastUpdated: 2020-09-15T16:13:06+03:00 --- Flattens a list, by spreading its elements into a new list. diff --git a/snippets/sum_by.md b/snippets/sum_by.md index 3cd5ae8f0..8de6aeeae 100644 --- a/snippets/sum_by.md +++ b/snippets/sum_by.md @@ -1,6 +1,8 @@ --- title: sum_by tags: math,list,beginner +firstSeen: 2019-08-21T08:30:04+03:00 +lastUpdated: 2020-11-02T19:28:35+02:00 --- Calculates the sum of a list, after mapping each element to a value using the provided function. diff --git a/snippets/sum_of_powers.md b/snippets/sum_of_powers.md index 1e85bb7d1..a94efdcf9 100644 --- a/snippets/sum_of_powers.md +++ b/snippets/sum_of_powers.md @@ -1,6 +1,8 @@ --- title: sum_of_powers tags: math,intermediate +firstSeen: 2020-10-04T14:21:41+03:00 +lastUpdated: 2020-11-02T19:28:35+02:00 --- Returns the sum of the powers of all the numbers from `start` to `end` (both inclusive). diff --git a/snippets/symmetric_difference.md b/snippets/symmetric_difference.md index d1d24ebd0..1c11740e8 100644 --- a/snippets/symmetric_difference.md +++ b/snippets/symmetric_difference.md @@ -1,6 +1,8 @@ --- title: symmetric_difference tags: list,intermediate +firstSeen: 2019-08-21T08:37:04+03:00 +lastUpdated: 2020-11-02T19:28:35+02:00 --- Returns the symmetric difference between two iterables, without filtering out duplicate values. diff --git a/snippets/symmetric_difference_by.md b/snippets/symmetric_difference_by.md index ee51c2a3a..2d71672e5 100644 --- a/snippets/symmetric_difference_by.md +++ b/snippets/symmetric_difference_by.md @@ -1,6 +1,8 @@ --- title: symmetric_difference_by tags: list,intermediate +firstSeen: 2019-08-21T08:37:04+03:00 +lastUpdated: 2020-11-02T19:28:35+02:00 --- Returns the symmetric difference between two lists, after applying the provided function to each list element of both. diff --git a/snippets/tail.md b/snippets/tail.md index 4f46c7394..f13622fef 100644 --- a/snippets/tail.md +++ b/snippets/tail.md @@ -1,6 +1,8 @@ --- title: tail tags: list,beginner +firstSeen: 2019-08-20T14:08:52+03:00 +lastUpdated: 2020-11-02T19:28:35+02:00 --- Returns all elements in a list except for the first one. diff --git a/snippets/take.md b/snippets/take.md index c1ae195e8..d3837140c 100644 --- a/snippets/take.md +++ b/snippets/take.md @@ -1,18 +1,20 @@ ---- -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) # [] -``` +--- +title: take +tags: list,beginner +firstSeen: 2020-03-16T19:52:44+02:00 +lastUpdated: 2020-09-15T16:13:06+03:00 +--- + +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 index adb0801b3..00798e30f 100644 --- a/snippets/take_right.md +++ b/snippets/take_right.md @@ -1,18 +1,20 @@ ---- -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] -``` +--- +title: take_right +tags: list,beginner +firstSeen: 2020-03-16T19:52:44+02:00 +lastUpdated: 2020-09-15T16:13:06+03:00 +--- + +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] +``` diff --git a/snippets/to_binary.md b/snippets/to_binary.md index d289bd064..c9572d7f5 100644 --- a/snippets/to_binary.md +++ b/snippets/to_binary.md @@ -1,6 +1,8 @@ --- title: to_binary tags: math,beginner +firstSeen: 2020-10-07T19:46:01+03:00 +lastUpdated: 2020-10-07T19:46:01+03:00 --- Returns the binary representation of the given number. diff --git a/snippets/to_dictionary.md b/snippets/to_dictionary.md index 2da19bed7..7507f3bdb 100644 --- a/snippets/to_dictionary.md +++ b/snippets/to_dictionary.md @@ -1,6 +1,8 @@ --- title: to_dictionary tags: list,dictionary,intermediate +firstSeen: 2020-04-13T19:30:29+03:00 +lastUpdated: 2020-11-02T19:28:35+02:00 --- Combines two lists into a dictionary, where the elements of the first one serve as the keys and the elements of the second one serve as the values. diff --git a/snippets/to_hex.md b/snippets/to_hex.md index d516e563e..1dfbe2124 100644 --- a/snippets/to_hex.md +++ b/snippets/to_hex.md @@ -1,6 +1,8 @@ --- title: to_hex tags: math,beginner +firstSeen: 2020-10-09T09:45:47+03:00 +lastUpdated: 2020-10-09T09:45:47+03:00 --- Returns the hexadecimal representation of the given number. diff --git a/snippets/to_iso_date.md b/snippets/to_iso_date.md index af6f7ac9e..eeb83b3bd 100644 --- a/snippets/to_iso_date.md +++ b/snippets/to_iso_date.md @@ -1,6 +1,8 @@ --- title: to_iso_date tags: date,intermediate +firstSeen: 2020-10-28T16:20:50+02:00 +lastUpdated: 2021-01-07T23:30:28+02:00 --- Converts a date to its ISO-8601 representation. diff --git a/snippets/to_roman_numeral.md b/snippets/to_roman_numeral.md index 5644daf3b..5791b89d2 100644 --- a/snippets/to_roman_numeral.md +++ b/snippets/to_roman_numeral.md @@ -1,6 +1,8 @@ --- title: to_roman_numeral tags: math,string,intermediate +firstSeen: 2020-10-07T00:04:09+03:00 +lastUpdated: 2020-11-02T19:28:35+02:00 --- Converts an integer to its roman numeral representation. diff --git a/snippets/transpose.md b/snippets/transpose.md index d020bc382..e2cd0cabd 100644 --- a/snippets/transpose.md +++ b/snippets/transpose.md @@ -1,6 +1,8 @@ --- title: transpose tags: list,intermediate +firstSeen: 2019-10-02T07:03:20+03:00 +lastUpdated: 2020-11-02T19:28:35+02:00 --- Transposes a two-dimensional list. diff --git a/snippets/unfold.md b/snippets/unfold.md index 7489d1b2b..d1dfc3c6e 100644 --- a/snippets/unfold.md +++ b/snippets/unfold.md @@ -1,6 +1,8 @@ --- title: unfold tags: function,list,advanced +firstSeen: 2020-01-02T20:17:51+02:00 +lastUpdated: 2020-11-02T19:28:35+02:00 --- Builds a list, using an iterator function and an initial seed value. diff --git a/snippets/union.md b/snippets/union.md index 57bd56567..05d0d9748 100644 --- a/snippets/union.md +++ b/snippets/union.md @@ -1,6 +1,8 @@ --- title: union tags: list,beginner +firstSeen: 2019-08-21T09:10:39+03:00 +lastUpdated: 2020-11-02T19:28:35+02:00 --- Returns every element that exists in any of the two lists once. diff --git a/snippets/union_by.md b/snippets/union_by.md index b0b98b464..28c635ec4 100644 --- a/snippets/union_by.md +++ b/snippets/union_by.md @@ -1,6 +1,8 @@ --- title: union_by tags: list,intermediate +firstSeen: 2019-08-21T09:10:39+03:00 +lastUpdated: 2020-11-02T19:28:35+02:00 --- Returns every element that exists in any of the two lists once, after applying the provided function to each element of both. diff --git a/snippets/unique_elements.md b/snippets/unique_elements.md index fd21797de..6f643e850 100644 --- a/snippets/unique_elements.md +++ b/snippets/unique_elements.md @@ -1,6 +1,8 @@ --- title: unique_elements tags: list,beginner +firstSeen: 2018-10-09T20:01:19+03:00 +lastUpdated: 2020-09-15T16:13:06+03:00 --- Returns the unique elements in a given list. diff --git a/snippets/values_only.md b/snippets/values_only.md index fa74e6a7f..b3ac16f2b 100644 --- a/snippets/values_only.md +++ b/snippets/values_only.md @@ -1,6 +1,8 @@ --- title: values_only tags: dictionary,list,beginner +firstSeen: 2018-04-01T23:56:31+03:00 +lastUpdated: 2020-11-02T19:28:35+02:00 --- Returns a flat list of all the values in a flat dictionary. diff --git a/snippets/weighted_average.md b/snippets/weighted_average.md index 8424ef52a..164d28d93 100644 --- a/snippets/weighted_average.md +++ b/snippets/weighted_average.md @@ -1,6 +1,8 @@ --- title: weighted_average tags: math,list,intermediate +firstSeen: 2020-10-09T07:00:33+03:00 +lastUpdated: 2020-12-24T15:00:53+02:00 --- Returns the weighted average of two or more numbers. diff --git a/snippets/when.md b/snippets/when.md index 5d19dd253..93869d6b0 100644 --- a/snippets/when.md +++ b/snippets/when.md @@ -1,6 +1,8 @@ --- title: when tags: function,intermediate +firstSeen: 2020-01-02T20:25:45+02:00 +lastUpdated: 2020-11-09T23:56:11+02:00 --- Tests a value, `x`, against a testing function, conditionally applying a function. diff --git a/snippets/words.md b/snippets/words.md index e9182de16..4986328e8 100644 --- a/snippets/words.md +++ b/snippets/words.md @@ -1,6 +1,8 @@ --- title: words tags: string,regexp,beginner +firstSeen: 2020-10-04T00:35:00+03:00 +lastUpdated: 2020-11-02T19:28:35+02:00 --- Converts a given string into a list of words. From 9045a4a4d31b647beee79a68ae2330184b7d8b60 Mon Sep 17 00:00:00 2001 From: Isabelle Viktoria Maciohsek Date: Sun, 13 Jun 2021 19:38:57 +0300 Subject: [PATCH 2/3] Update template --- snippet-template.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/snippet-template.md b/snippet-template.md index b049ec653..f05c49808 100644 --- a/snippet-template.md +++ b/snippet-template.md @@ -1,6 +1,8 @@ --- title: function_name tags: utility,intermediate +firstSeen: 2021-06-13T05:00:00-04:00 +lastUpdated: 2021-06-13T05:00:00-04:00 --- Explain briefly what the snippet does. From da95c279272fc3dc82b55a8a1d25e0eba15201e8 Mon Sep 17 00:00:00 2001 From: Chalarangelo Date: Wed, 16 Jun 2021 19:07:05 +0300 Subject: [PATCH 3/3] Tidy up for rebranding --- .github/config.yml | 14 -------------- .github/lock.yml | 35 ----------------------------------- .github/stale.yml | 18 ------------------ CONTRIBUTING.md | 25 +++++++------------------ README.md | 14 +++++++------- logo.png | Bin 31487 -> 173158 bytes snippet-template.md | 1 - 7 files changed, 14 insertions(+), 93 deletions(-) delete mode 100644 .github/config.yml delete mode 100644 .github/lock.yml delete mode 100644 .github/stale.yml diff --git a/.github/config.yml b/.github/config.yml deleted file mode 100644 index c62bc052d..000000000 --- a/.github/config.yml +++ /dev/null @@ -1,14 +0,0 @@ -# Configuration for request-info - https://github.com/behaviorbot/request-info - -# *Required* Comment to reply with -requestInfoReplyComment: > - We would appreciate it if you could provide us with some more information about this issue/PR! - -# *OPTIONAL* default titles to check against for lack of descriptiveness -# MUST BE ALL LOWERCASE -requestInfoDefaultTitles: - - update readme.md - - updates - -# *OPTIONAL* Label to be added to Issues and Pull Requests with insufficient information given -requestInfoLabelToAdd: needs-more-info diff --git a/.github/lock.yml b/.github/lock.yml deleted file mode 100644 index 197497fe2..000000000 --- a/.github/lock.yml +++ /dev/null @@ -1,35 +0,0 @@ -# Configuration for Lock Threads - https://github.com/dessant/lock-threads - -# Number of days of inactivity before a closed issue or pull request is locked -daysUntilLock: 60 - -# Skip issues and pull requests created before a given timestamp. Timestamp must -# follow ISO 8601 (`YYYY-MM-DD`). Set to `false` to disable -skipCreatedBefore: false - -# Issues and pull requests with these labels will be ignored. Set to `[]` to disable -exemptLabels: [] - -# Label to add before locking, such as `outdated`. Set to `false` to disable -lockLabel: false - -# Comment to post before locking. Set to `false` to disable -lockComment: false - -# Assign `resolved` as the reason for locking. Set to `false` to disable -setLockReason: true - -# Limit to only `issues` or `pulls` -# only: issues - -# Optionally, specify configuration settings just for `issues` or `pulls` -# issues: -# exemptLabels: -# - help-wanted -# lockLabel: outdated - -# pulls: -# daysUntilLock: 30 - -# Repository to extend settings from -# _extends: repo diff --git a/.github/stale.yml b/.github/stale.yml deleted file mode 100644 index 03a77e140..000000000 --- a/.github/stale.yml +++ /dev/null @@ -1,18 +0,0 @@ -# Number of days of inactivity before an issue becomes stale -daysUntilStale: 21 -# Number of days of inactivity before a stale issue is closed -daysUntilClose: 7 -# Issues with these labels will never be considered stale -exemptLabels: - - not-stale - - pinned - - security -# Label to use when marking an issue as stale -staleLabel: false -# Comment to post when marking an issue as stale. Set to `false` to disable -markComment: > - This issue has been automatically marked as stale because it has not had - recent activity. It will be closed if no further activity occurs. Thank you - for your contributions. -# Comment to post when closing a stale issue. Set to `false` to disable -closeComment: false diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a98dcb59a..6d57d942f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,20 +2,10 @@ **30 seconds of code** is powered by the community, so feel free to contribute in any way you can to help us! -## Tools - -Before you begin contributing, you should install the integration-tools globally on your machine: - -```sh -npm install -g @30-seconds/integration-tools -``` - -This will allow you to use our customized tools for all of our content repositories. - ## How you can help - Submit pull requests with new snippets (see guidelines below) or snippet updates (tags, descriptions, explanations, typos, examples, code improvements). -- Open issues for things you want to see added, modified, discuss ideas or help out with existing issues. +- Open issues for things you want to see added, modified, discuss ideas or help out with existing issues. ## Ground rules @@ -23,25 +13,24 @@ Breaking any of these rules will result in your pull request being closed. Pleas - **Always be polite and respectful to others** and try to follow the advice of the moderators/collaborators/owners. - **Only modify snippet files**, never modify the generated files in the `snippet_data` directory. -- **Use the integration tools commands** to generate new snippets, ensuring they have the correct name and are in the correct location. +- **Use the snippet template** to create new snippets, ensure they have the correct name and are in the correct location. - **Follow snippet format exactly**, otherwise your snippets will not be recognized correctly by the tools responsible for publishing them on the website. This includes such things as spacing and empty lines - if you accidentally make a mistake, consult the repository's [snippet template](snippet-template.md). - **Snippets should solve real-world problems**, no matter how simple and should be abstract enough to be applied to different scenarios. ## Snippet creation -After installing the integration tools, you can run the following command: +In order to create a new snippet, you should follow the steps below: -```sh -create-new-snippet -``` - -Replace `` with the name of the snippet you are adding. +- Crate a copy of the [snippet template](snippet-template.md) in the `snippets` directory. +- Change the name of the newly created file to the name of your snippet. +- Edit the file, adding your snippet based on the guidelines. ## Snippet guidelines - Snippets must have all their frontmatter sections (title, tags etc.) filled. - Snippet titles must correspond to the filename and follow the language and repository's naming conventions. - Snippet tags must be comma-separated, contain a primary tag as seen on the website as their first tag and an expertise tag (`beginner`, `intermediate` or `advanced`) as their last tag. +- Snippets must have their `firstSeen` dates formatted using [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601). - Snippet descriptions must be short and to the point. Explain *what* the snippet does and detail *how* the snippet works and the language features used in it. - Snippet code and examples must be enclosed in appropriate, language-tagged blocks as shown in the snippet template, be short and use modern techniques and features. Also make sure to test your code before submitting. - If your snippet contains arguments with default parameters, explain what happens if they are omitted when calling the function and what the default case is. Specify default parameters for arguments only if necessary. diff --git a/README.md b/README.md index 2e58a1b61..862c8f2c0 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,14 @@ [![Logo](/logo.png)](https://30secondsofcode.org/python/p/1) -## 30 seconds of Python +# 30 seconds of code > Short Python code snippets for all your development needs * Visit [our website](https://30secondsofcode.org) to view our snippet collection. * Use the [Search page](https://30secondsofcode.org/search) to find snippets that suit your needs. You can search by name, tag, language or using a snippet's description. Just start typing a term and see what comes up. -* Browse the [Python Snippet List](https://30secondsofcode.org/python/p/1) to see all the snippets in this project or click individual tags at the top of the same page to narrow down your search to a specific tag. +* Browse the [Python Snippet collection](https://30secondsofcode.org/python/p/1) to see all the snippets in this project or click individual tags at the top of the same page to narrow down your search to a specific tag. * Click on each snippet card to view the whole snippet, including code, explanation and examples. -* You can use the button on the right side of a snippet card to copy the code to clipboard. +* You can use the button at the bottom of a snippet card to copy the code to clipboard. * If you like the project, give it a star. It means a lot to the people maintaining it. ## Want to contribute? @@ -18,9 +18,9 @@ * If you find a problem with a specific snippet, please [open an issue](https://github.com/30-seconds/30-seconds-of-python/issues/new). * If you find a problem with the website, please [report it in the web repository](https://github.com/30-seconds/30-seconds-web/issues/new). -## Credits & Sponsors +## Credits -* This repository is maintained by the [30-seconds organization on GitHub](https://github.com/30-seconds). +* This repository is maintained by the [30 seconds of code organization on GitHub](https://github.com/30-seconds). * All snippets are licensed under the CC0-1.0 License, unless explicitly stated otherwise. -* Logos, names and trademarks are not to be used without the explicit consent of the maintainers or owners of the 30 seconds GitHub organization. -* Our website is powered by [Netlify](https://www.netlify.com/), [Gatsby](https://www.gatsbyjs.org/), [Travis CI](https://travis-ci.com/) & [GitHub](https://github.com/) +* Logos, names and trademarks are not to be used without the explicit consent of the owners of the 30 seconds of code GitHub organization. +* Our website is powered by [Netlify](https://www.netlify.com/), [Next.js](https://nextjs.org/) & [GitHub](https://github.com/). diff --git a/logo.png b/logo.png index c1e1bd331de5e2e7b7562dc4249e7f4c1ca48d28..a7661d15e2ff20389b2318314aeca47ad72ee548 100644 GIT binary patch literal 173158 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�mw5}?xZ!K=vJaO!A)HdQSBPIB$5D)% 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

cV4^6q0{5qM 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 z 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 E02RepCIA2c literal 31487 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%0DJ;q@0krSu>C&iW#UJdOpq>%p8msZ` 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 O^M`6$s$Z4OgZ~%PA~8Y$ diff --git a/snippet-template.md b/snippet-template.md index f05c49808..458ad256e 100644 --- a/snippet-template.md +++ b/snippet-template.md @@ -2,7 +2,6 @@ title: function_name tags: utility,intermediate firstSeen: 2021-06-13T05:00:00-04:00 -lastUpdated: 2021-06-13T05:00:00-04:00 --- Explain briefly what the snippet does.