From be7856546a5c2f5eda5a2ca72f1db0a2845528c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Heval=20S=C3=B6=C4=9F=C3=BCt?= <66115650+hevalsogut@users.noreply.github.com> Date: Sun, 16 Nov 2025 11:41:07 +0300 Subject: [PATCH] Add functions to manipulate lists and dictionaries --- Week03/sequences_heval_sogut.py | 34 +++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 Week03/sequences_heval_sogut.py diff --git a/Week03/sequences_heval_sogut.py b/Week03/sequences_heval_sogut.py new file mode 100644 index 00000000..5befcb15 --- /dev/null +++ b/Week03/sequences_heval_sogut.py @@ -0,0 +1,34 @@ +def remove_duplicates(seq: list) -> list: + """ + Remove duplicate elements from a list while preserving the original order. + Only the first occurrence of each element is kept. + """ + seen = set() + result = [] + for item in seq: + if item not in seen: + seen.add(item) + result.append(item) + return result + + +def list_counts(seq: list) -> dict: + """ + Count how many times each element appears in a list. + Returns a dictionary where keys are elements and values are counts. + """ + counts = {} + for item in seq: + counts[item] = counts.get(item, 0) + 1 + return counts + + +def reverse_dict(d: dict) -> dict: + """ + Reverse the keys and values of a dictionary. + If multiple keys have the same value, the last one overwrites the earlier ones. + """ + reversed_dict = {} + for key, value in d.items(): + reversed_dict[value] = key + return reversed_dict