Все таки Python динамичен и выразителен. Этого у него не отнять.
Там некоторые .
Вот Ваш однострочник:
result=list(set(Ans) & set(Word))
Это даст пересечение обоих списков:
['red', 'white']
Если нужен список уникальных элементов в объединении двух списков:
['red', 'white', 'green', 'blue']result = list(set(Ans + Word))
Симметричная разность:
['green','blue']result=list(set(Ans) ^ set(Word))
Обычная разность(Множество из Ans не входящее в Word):
['green','blue']result=list(set(Ans) - set(Word))
Вариант, сохраняющий порядок с меньшим количеством конверсий типов:
sbuf = set(Word)result = [x for x in Ans if x in sbuf)]