Write a function that takes in a string of one or more words, and returns the same string, but with all five or more letter words reversed (Just like the name of this Kata). Strings passed in will consist of only letters and spaces. Spaces will be included only when more than one word is present.

Examples:
spinWords( "Hey fellow warriors" ) => returns "Hey wollef sroirraw" 
spinWords( "This is a test") => returns "This is a test" 
spinWords( "This is another test" )=> returns "This is rehtona test"

Source: codewars | Difficulty: EASY
Tags: String algorithms

Starter code: def spin_words(sentence):
	

Solutions:
def spin_words(sentence):
	return ' '.join([x[::-1] if len(x) >= 5 else x for x in sentence.split(' ')])


def spin_words(sentence):
	words = [word for word in sentence.split(' ')]
	words = [word if len(word) < 5 else word[::-1] for word in words]
	return ' '.join(words)


def spin_words(sentence):
	L = sentence.split()
	new = []
	for word in L:
		if len(word) >= 5:
			new.append(word[::-1])
		else:
			new.append(word)
	string = ' '.join(new)
	return string


def spin_words(sentence):
	words = sentence.split()
	output = []
	delimiter = ' '
	for word in words:
		if len(word) >= 5:
			output.append(reverse(word))
		else:
			output.append(word)
	return delimiter.join(output)

def reverse(string):
	return string[::-1]


import re

def spin_words(sentence):
	return re.sub('\\w{5,}', lambda w: w.group(0)[::-1], sentence)


def spin_words(sentence):
	output = []
	for word in sentence.split(' '):
		if len(word) > 4:
			word = word[::-1]
		output.append(word)
	return ' '.join(output)


spin_words = lambda s: ' '.join([len(w) > 4 and w[::-1] or w for w in s.split()])