Skip to content

Instantly share code, notes, and snippets.

@EmilStenstrom
Last active August 31, 2018 10:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save EmilStenstrom/5564811 to your computer and use it in GitHub Desktop.
Save EmilStenstrom/5564811 to your computer and use it in GitHub Desktop.
Convert a list of strings to a list of integers suitable for numerical processing. Easily convert back to the strings when done.
class KeyToNumMapper(object):
counter = 0
mapper_key_int = {}
mapper_int_key = {}
def __init__(self, initial):
map(self.add_key, initial)
def add_key(self, key):
if key in self.mapper_key_int:
return self.mapper_key_int[key]
else:
self.mapper_key_int[key] = self.counter
self.mapper_int_key[self.counter] = key
self.counter += 1
return self.counter
def get_nums(self, keys):
return [self.get_num(key) for key in keys]
def get_num(self, key):
return self.mapper_key_int[key]
def get_key(self, num):
return self.mapper_int_key[num]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment