Your Goal is to create a function that takes  two strings, a guess and a phone number. 

Based on the guess, the function should display a portion of the phone number:

    guess_my_number('052', '123-451-2345')
    would return the string: '#2#-#5#-2##5'
    
    or
    
    guess_my_number('142', '123-451-2345')
    would return the string: '12#-4#1-2#4#'
    
Order of the guess string should not matter, and should not have duplicates of the ten digitis 0-9. Guess will never be an empty string or contains any other charachters. The phone number will always bea ten digit number in the format ###-###-####.

The default number of 123-451-2345 should be included, but can be overwriten by a different number if supplied at the time of execution.

Source: codewars | Difficulty: EASY
Tags: Fundamentals

Starter code: def guess_my_number(guess, number = '123-451-2345'):
	

Solutions:
def guess_my_number(guess, number='123-451-2345'):
	return ''.join((c if c in guess + '-' else '#' for c in number))


from re import sub

def guess_my_number(guess, number='123-451-2345'):
	return sub('[^{}-]'.format(guess), '#', number)


guess_my_number = lambda g, n='123-451-2345': ''.join((('#' + c)[c in '-' + g] for c in n))


import re

def guess_my_number(guess, number='123-451-2345'):
	return re.sub('[^-' + guess + ']', '#', number)


def guess_my_number(a, b='123-451-2345'):
	a = set(a + '-')
	return ''.join(('#' if x not in a else x for x in b))


guess_my_number = lambda guess, number='123-451-2345': ''.join([x if x in guess or x == '-' else '#' for x in list(number)])


def guess_my_number(guess, number='123-451-2345'):
	g = set(guess + '-')
	return ''.join((x if x in g else '#' for x in number))


def guess_my_number(guess, number='123-451-2345'):
	digits = set('0123456789') - set(guess)
	for d in digits:
		number = number.replace(d, '#')
	return number


def guess_my_number(guess, number='123-451-2345'):
	return ''.join((a if a in guess or a == '-' else '#' for a in number))