Split каждая строка в пробеле и конвертировать оба значения в sets. Их intersection будет содержать все слова, которые они имеют вместе.
>>> set("cat feet".split()).intersection(set("cat shoes".split()))
set(['cat'])
Этот метод не имеет отношения к упорядочению слов. «ноги кошки» и «кошки» будут иметь выход «cat», хотя «cat» не отображается в одном и том же положении в обеих строках. Если вы хотите, чтобы найти слова, которые существуют в том же положении в обеих строках, вы можете zip расщепленные строки вместе, и отображать только те слова, которые существуют в том же месте в обоих:
>>> [a for a,b in zip("cat feet".split(), "cat shoes".split()) if a == b]
['cat']
>>> [a for a,b in zip("feet cat".split(), "cat shoes".split()) if a == b]
[]
Показывает выразительную силу python. – mvw
Отлично! Чтобы растянуть это дальше, как бы вы соответствовали 2 словам в каждой строке и сохранили их в правильном порядке? , например. «кошки, как ноги» «кошки, как обувь» получать результат - «кот как» набор не собирается сохранить этот порядок это? – NorthSide
Это зависит. Какой правильный порядок для выхода «кошачьих ног» соответствует «как кошелек» и почему? – Kevin