most people here are using things not thaught in the book such as join, join should not be used to solve this question. Here is the ultimate answer for it:
spam = ['a', 'e', 'i', 'o', 'u']
if len(spam) == 1:
print(spam[0])
else:
for i in range(len(spam)-1):
print(spam[i], end=', ')
print('and', spam[-1])
if your list is always >1 you can skip the if/else statement