Your back at your newly acquired decrypting job for the secret organization when a new assignment comes in.   Apparently the enemy has been communicating using a device they call "The Mirror".  
It is a rudimentary device with encrypts the message by switching its letter with its mirror opposite (A => Z), (B => Y), (C => X) etc.  

Your job is to build a method called "mirror" which will decrypt the messages. Resulting messages will be in lowercase.

To add more secrecy, you are to accept a second optional parameter, telling you which letters or characters are to be reversed; if it is not given, consider the whole alphabet as a default.

To make it a bit more clear: e.g. in case of "abcdefgh" as the second optional parameter, you replace "a" with "h", "b" with "g" etc. .

For example:
```python
mirror("Welcome home"), "dvoxlnv slnv" #whole alphabet mirrored here
mirror("hello", "abcdefgh"), "adllo" #notice only "h" and "e" get reversed
```

Difficulty: EASY
Starter code: def mirror(code, chars="abcdefghijklmnopqrstuvwxyz"):
	

Solutions:
def mirror(code, chars='abcdefghijklmnopqrstuvwxyz'):
	return code.lower().translate(str.maketrans(chars, chars[::-1]))


from string import ascii_lowercase

def mirror(code, letters=ascii_lowercase):
	return code.lower().translate(str.maketrans(letters, letters[::-1]))


from string import ascii_lowercase as aLow
TABLE = str.maketrans(aLow, aLow[::-1])

def mirror(code, alpha=None):
	table = TABLE if alpha is None else str.maketrans(alpha, alpha[::-1])
	return code.lower().translate(table)


def mirror(code, opt=None):
	if opt == None:
		key = 'abcdefghijklmnopqrstuvwxyz'
	else:
		key = opt
	result = ''
	for letter in code.lower():
		try:
			result += key[-1 - key.index(letter)]
		except:
			result += letter
	return result


from string import ascii_lowercase as alphabet

def mirror(code, switches=alphabet):
	key = str.maketrans(switches, switches[::-1])
	return code.lower().translate(key)


def mirror(c, d='abcdefghijklmnopqrstuvwxyz'):
	dd = {i: j for (i, j) in zip(d, d[::-1])}
	return ''.join((dd[i] if i in dd else i for i in c.lower()))


def mirror(message, key='abcdefghijklmnopqrstuvwxyz'):
	return message.lower().translate(str.maketrans(key, key[::-1]))


mirror = lambda c, a='abcdefghijklmnopqrstuvwxyz': c.lower().translate(str.maketrans(a, a[::-1]))


mirror = lambda s, a='abcdefghijklmnopqrstuvwxyz': s.lower().translate(a.maketrans(a, a[::-1]))


def mirror(code, secret='abcdefghijklmnopqrstuvwxyz'):
	intab = secret
	outtab = secret[::-1]
	return code.lower().translate(str.maketrans(intab, outtab))