text_list?=?text.split()
dic?=?dict()
for?k?in?range(0,?len(text_list)):
dic[text_list[k]]?=?[]
for?i?in?range(0,?len(text_list)):
if?i?==?0:
dic[text_list[i]]?=?['']
else:
if?text_list[i?-?1]?not?in?dic[text_list[i]]:
dic[text_list[i]]?+=?[text_list[i?-?1]]
return?dic
def?print_dic_in_key_order(dic):
order?=?[i?for?i?in?dic]
order.sort()
for?k?in?order:
print(k,?':',?sorted(dic[k]))
text?=?'a?man?we?saw?saw?a?saw'
previous_words_dict?=?get_previous_words_dict(text)
print_dic_in_key_order(previous_words_dict)
print()
text?=?'my?favourite?painting?is?the?painting?i?did?of?my?dog?in?that?painting?in?my?den'
previous_words_dict?=?get_previous_words_dict(text)
print_dic_in_key_order(previous_words_dict)
print()