Exercise 7: A Case-Insensitive Unique-Character String — Possible Solution ==================================================================== word = "Mississippi River" my_list = [] for ch in word: lower_ch = ch.lower() if lower_ch not in my_list: my_list.append(lower_ch) unique = "".join(my_list) print(unique) Output: misp rve WHY THIS WORKS AS AN ANSWER ------------------------------ Every character — including the capital "M" and "R" — is lowered with ch.lower() before it's ever checked against my_list or added to it, exactly as this lesson's own fix insists: normalise both sides, not just one. That's why "M" (from "Mississippi") and no lowercase "m" elsewhere still just becomes a single lowercase "m" in the result, and why "River"'s capital "R" merges cleanly with the second, lowercase "r" at the very end of "River" instead of getting its own separate entry. Tracing the unique characters in first-seen order: m, i, s, p, then the space between the two words, then r, v, e — giving "misp rve" once joined. If the check and the append had normalised inconsistently (lowering one but not the other, the half-fix this lesson's own tip-box warns about), "R" and the later lowercase "r" would have been treated as two different characters instead of one.