Last active
July 6, 2016 18:58
-
-
Save colonelpanic8/5018963 to your computer and use it in GitHub Desktop.
Mapping Letters to the numbers they are associated with on a telephone.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| tarting_value = [0, 0] + [3 for i in range(5)] + [4, 3, 4] | |
| partial_sums = [sum(starting_value[:i]) for i in range(len(starting_value)+1)] | |
| letter_to_number = dict(reduce( | |
| lambda x, | |
| y: x+y, | |
| [map(lambda letter: (letter, number), letters) for number, letters in enumerate(map(lambda a_list: map(lambda char: chr(char+65), a_list), [range(*value) for value in zip(partial_sums[:-1], partial_sums[1:])]))] | |
| )) | |
| letter_to_number = dict((letter, number) for number, letters in enumerate(map(lambda a_list: map(lambda char: chr(char+65), a_list), [range(*value) for value in zip(partial_sums[:-1], partial_sums[1:])])) for letter in letters) | |
| -- OR -- | |
| current_number = 0 | |
| ranges_for_number = {} | |
| for number, number_letters in enumerate(starting_value): | |
| ranges_for_number[number] = (current_number, current_number+number_letters) | |
| current_number += number_letters | |
| letter_to_number = {} | |
| for number, letters in enumerate(map(lambda a_list: map(lambda char: chr(char+65), a_list), [range(*value) for value in ranges_for_number.itervalues()])): | |
| for letter in letters: | |
| letter_to_number[letter] = number |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment