learner
learner

Reputation: 877

How to convert list of strings to integer indexes?

I have a list like this:

 lst = [['ab', 'bc', 'cd'], ['dg', 'ab']]

I want to build a string indexer and convert it into:

 lst_converted = [[1,2,3], [4,1]]

Do some processing on the converted list and then if the output is [[3], [2]]

 lst_output = [['cd'], ['ab']]

Here,

  'ab' = 1
  'bc' = 2
  'cd' = 3
  'dg' = 4

Strings can be arbitrary and not necessarily characters. How to do this?

Upvotes: 0

Views: 117

Answers (1)

Tim Biegeleisen
Tim Biegeleisen

Reputation: 520968

Use a list comprehension along with a dictionary to map the string literals to integer values:

d = {}
d['ab'] = 1
d['bc'] = 2
d['cd'] = 3
d['dg'] = 4

lst = [['ab', 'bc', 'cd'], ['dg', 'ab']]
lst_converted = [[d[y] for y in x] for x in lst]
print(lst_converted)  # [[1, 2, 3], [4, 1]]

Upvotes: 1

Related Questions