One suggestion to build a satisfactory password is to start with a memorable phrase or sentence and make a password by extracting the first letter of each word. 

Even better is to replace some of those letters with numbers (e.g., the letter `O` can be replaced with the number `0`):

* instead of including `i` or `I` put the number `1` in the password;
* instead of including `o` or `O` put the number `0` in the password;
* instead of including `s` or `S` put the number `5` in the password.


## Examples:
```
"Give me liberty or give me death"  --> "Gml0gmd"
"Keep Calm and Carry On"            --> "KCaC0"
```

Source: codewars | Difficulty: EASY
Tags: String algorithms

Fundamentals

Starter code: def make_password(phrase):
	

Solutions:
SWAP = {'i': '1', 'I': '1', 'o': '0', 'O': '0', 's': '5', 'S': '5'}

def make_password(phrase):
	return ''.join((SWAP.get(a[0], a[0]) for a in phrase.split()))


def make_password(phrase):
	new = ''
	phrase = phrase.replace('i', '1').replace('I', '1')
	phrase = phrase.replace('o', '0').replace('O', '0')
	phrase = phrase.replace('s', '5').replace('S', '5')
	phrase = phrase.split(' ')
	for i in phrase:
		new += i[0]
	return new


def make_password(phrase, mapping=dict(['i1', 'o0', 's5'])):
	return ''.join((mapping.get(c.lower(), c) for (c, *rest) in phrase.split()))


TABLE = str.maketrans('iIoOsS', '110055')

def make_password(s):
	return ''.join((w[0] for w in s.split())).translate(TABLE)


def make_password(phrase):
	return ''.join((w[0] for w in phrase.split())).translate(str.maketrans('iIoOsS', '110055'))


def make_password(phrase):
	return ''.join((i[0] for i in phrase.split())).translate(str.maketrans('sioSIO', '510510'))


make_password = lambda s, x='ios': ''.join(((lambda f: '105'[f] * (f > -1))(x.find(e[0].lower())) or e[0] for e in s.split()))