from typing import Sequence, TypeVar T = TypeVar("T", bound=str | float) def missingValue(L: Sequence[T], M: Sequence[T]) -> T | None: """Return the missing value from one of the two sorted sequences.""" if (not L) and M: return M[0] elif (not M) and L: return L[0] elif (not L) and (not M): return None L = sorted(L) M = sorted(M) larger = L if len(L) > len(M) else M smaller = L if len(L) < len(M) else M for i in range(len(larger)): a = larger[i] if i > (len(smaller) - 1): return a b = smaller[i] if a != b: return larger[i] return None print("Testing missingValue()...", end="") assert missingValue([1, 2, 3], [3, 1]) == 2 assert missingValue([1, 2, 3], [2, 1]) == 3 assert missingValue(["A", "B", "A", "C"], ["C", "A", "B"]) == "A" assert missingValue(["A", "B", "A", "C"], ["A", "A", "B"]) == "C" assert missingValue(["A", "B", "A", "C"], ["A", "C", "A"]) == "B" assert missingValue([2, 2], [2]) == 2 assert missingValue([2, 3], [2]) == 3 assert missingValue([2, 3], [3]) == 2 assert missingValue(["amazing"], []) == "amazing" # Make sure the function is non-mutating L = [1, 2, 3] M = [3, 1] assert missingValue(L, M) == 2 assert L == [1, 2, 3] assert M == [3, 1] print("Passed!")