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: introductory

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))