From 181136b3d730d14fef89f73f1e04533a0678f3db Mon Sep 17 00:00:00 2001 From: Alexander Ou Date: Tue, 8 Aug 2023 09:27:51 -0700 Subject: [PATCH] added solutions.py, output section with desired output --- exercises.py | 24 ++++++++++++--------- solutions.py | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 74 insertions(+), 10 deletions(-) create mode 100644 solutions.py diff --git a/exercises.py b/exercises.py index 888c0e7..931047e 100644 --- a/exercises.py +++ b/exercises.py @@ -2,21 +2,21 @@ import re import pandas as pd -def lc(l1: list): +def list_comprehension(l1: list): """For input list l1 of integers, return list of elements whose square is less than sum of all elements""" return None -def nlc(l1: list, l2: list): +def nested_list_comprehension(l1: list, l2: list): """For input lists l1, l2, return a list of elements common to both l1 and l2.""" return None -def dc(l1: list): +def dict_comprehension(l1: list): """For input list l1 of integers, return a dictionary with keys from l1, and values are squares of keys""" @@ -27,19 +27,23 @@ if __name__ == "__main__": l1 = [1, 2, 3, 4] l2 = [2, 4, 6, 8] - print("Inputs:") + print("\n-------------------\n") + print("Inputs:\n") print(f"l1: {l1}") print(f"l2: {l2}") print("\n-------------------\n") - print("lc:") - print(lc(l2)) + print("list_comprehension:\n") + print(f"Desired output: [2, 4]") + print(f"Output : {list_comprehension(l2)}") print("\n-------------------\n") - print("nlc:") - print(nlc(l1, l2)) + print("nested_list_comprehension:\n") + print(f"Desired output: [2, 4]") + print(f"Output : {nested_list_comprehension(l1, l2)}") print("\n-------------------\n") - print("dc:") - print(dc(l1)) + print("dict_comprehension:\n") + print("Desired output: {1: 1, 2: 4, 3: 9, 4: 16}") + print(f"Output: : {dict_comprehension(l1)}") print("\n-------------------\n") diff --git a/solutions.py b/solutions.py new file mode 100644 index 0000000..971924e --- /dev/null +++ b/solutions.py @@ -0,0 +1,60 @@ +import re +import pandas as pd + + +def list_comprehension(l1: list): + """For input list l1 of integers, return list of elements + whose square is less than sum of all elements""" + + sum_l1 = sum(l1) + return [elem for elem in l1 if elem * elem < sum_l1] + + +def nested_list_comprehension(l1: list, l2: list): + """For input lists l1, l2, return a list of elements common + to both l1 and l2.""" + + # result = [] + # for e1 in l1: + # for e2 in l2: + # if e1 == e2: + # result.append(e1) + + result = [e1 for e2 in l2 for e1 in l1 if e1 == e2] + + return result + + +def dict_comprehension(l1: list): + """For input list l1 of integers, return a dictionary with + keys from l1, and values are squares of keys""" + + result = {e: e * e for e in l1} + + return result + + +if __name__ == "__main__": + l1 = [1, 2, 3, 4] + l2 = [2, 4, 6, 8] + + print("\n-------------------\n") + print("Inputs:\n") + print(f"l1: {l1}") + print(f"l2: {l2}") + print("\n-------------------\n") + + print("list_comprehension:\n") + print(f"Desired output: [2, 4]") + print(f"Output : {list_comprehension(l2)}") + print("\n-------------------\n") + + print("nested_list_comprehension:\n") + print(f"Desired output: [2, 4]") + print(f"Output : {nested_list_comprehension(l1, l2)}") + print("\n-------------------\n") + + print("dict_comprehension:\n") + print("Desired output: {1: 1, 2: 4, 3: 9, 4: 16}") + print(f"Output: : {dict_comprehension(l1)}") + print("\n-------------------\n")