diff --git a/data_compression/huffman.py b/data_compression/huffman.py index 15bd311e4fc6..425876f5e5e6 100644 --- a/data_compression/huffman.py +++ b/data_compression/huffman.py @@ -76,9 +76,7 @@ def huffman(file_path: str) -> None: """ letters_list = parse_file(file_path) root = build_tree(letters_list) - letters = { - k: v for letter in traverse_tree(root, "") for k, v in letter.bitstring.items() - } + letters = {**letter.bitstring for letter in traverse_tree(root, "")} print(f"Huffman Coding of {file_path}: ") with open(file_path) as f: while True: diff --git a/data_structures/arrays/sudoku_solver.py b/data_structures/arrays/sudoku_solver.py index 05e2d9f7e964..6cc05d18adb1 100644 --- a/data_structures/arrays/sudoku_solver.py +++ b/data_structures/arrays/sudoku_solver.py @@ -38,7 +38,7 @@ def cross(items_a, items_b): + [cross(rs, cs) for rs in ("ABC", "DEF", "GHI") for cs in ("123", "456", "789")] ) units = {s: [u for u in unitlist if s in u] for s in squares} -peers = {s: {x for u in units[s] for x in u} - {s} for s in squares} +peers = {s: {*u for u in units[s]} - {s} for s in squares} def test() -> None: diff --git a/graphs/hopcroft_karp.py b/graphs/hopcroft_karp.py index a6131f4f94ad..fcbd22095517 100644 --- a/graphs/hopcroft_karp.py +++ b/graphs/hopcroft_karp.py @@ -84,11 +84,7 @@ def __init__(self, graph: dict[T, list[T]]) -> None: self.graph = graph self.left_vertices = list(graph.keys()) self.right_vertices = sorted( - { - right_vertex - for neighbors in graph.values() - for right_vertex in neighbors - }, + {*neighbors for neighbors in graph.values()}, key=repr, ) diff --git a/matrix/median_matrix.py b/matrix/median_matrix.py index 116e609a587c..57446615e814 100644 --- a/matrix/median_matrix.py +++ b/matrix/median_matrix.py @@ -23,7 +23,7 @@ def median(matrix: list[list[int]]) -> int: 3 """ # Flatten the matrix into a sorted 1D list - linear = sorted(num for row in matrix for num in row) + linear = sorted(*row for row in matrix) # Calculate the middle index mid = (len(linear) - 1) // 2 diff --git a/project_euler/problem_079/sol1.py b/project_euler/problem_079/sol1.py index 74392e9bd094..ee6912af9b3f 100644 --- a/project_euler/problem_079/sol1.py +++ b/project_euler/problem_079/sol1.py @@ -34,7 +34,7 @@ def find_secret_passcode(logins: list[str]) -> int: # Split each login by character e.g. '319' -> ('3', '1', '9') split_logins = [tuple(login) for login in logins] - unique_chars = {char for login in split_logins for char in login} + unique_chars = {*login for login in split_logins} for permutation in itertools.permutations(unique_chars): satisfied = True diff --git a/sorts/bucket_sort.py b/sorts/bucket_sort.py index 4dba0cc22d0d..d4908edc16d9 100644 --- a/sorts/bucket_sort.py +++ b/sorts/bucket_sort.py @@ -102,7 +102,7 @@ def bucket_sort( index = min(int((val - min_value) / bucket_size), bucket_count - 1) buckets[index].append(val) - return [val for bucket in buckets for val in sorted(bucket)] + return [*sorted(bucket) for bucket in buckets] if __name__ == "__main__":