Exercise 1: A List, Three Ways — Possible Solution ==================================================================== shopping = ["milk", "eggs", "bread", "tea"] print(", ".join(shopping)) print(" | ".join(shopping)) print("\n".join(shopping)) # join puts the separator BETWEEN items only, so there is nothing # after "tea" in any of the three lines. Output: milk, eggs, bread, tea milk | eggs | bread | tea milk eggs bread tea WHY THIS WORKS AS AN ANSWER ------------------------------ The separator is the string join is called on, so each version differs only in that string. For the third, the separator is a newline character, which means the whole list becomes ONE string containing line breaks and a single print() writes all four lines. join never adds a separator after the last item, which is the difference from a loop that prints each item with end=', ': that loop leaves a stray comma at the end.