Можно ли ранее обозначенную числом переменную вывести из str в int?

Всем доброго времени суток. Появилась необходимость сделать мини метрический калькулятор. Например, из слова "megananokilogigamicrometer" по приставкам вывести степень конечного числа x. На примере mega имеет вид 10^6, nano 10^-9 и так далее, в итоге получится 10^3, нужно вывести степень 10, то есть 3. Я обозначил в коде заранее, чему равны эти переменные, но после того, как я нашел их в слове, не знаю, как вернуть в них значение из начала. Вот код:

tera    =12
giga    =9
mega    =6
kilo    =3
deci    =-1
centi   =-2
milli   =-3
micro   =-6
nano    =-9

words = ['tera', 'giga', 'mega', 'kilo', 'deci','centi', 'milli', 'micro', 'nano']

word = input()
ans = []

##Находим слова-приставки
for i in words:
    if i in word:
        ans.append(i)

##Находим сумму их степени       
print(sum(map(int, ans)))

Главный для меня вопрос - как все таки перевести приставку, которую я получил в цикле for в заданное ей значение. Опять же пример. Слово kilometer. В цикле for я получаю 'kilo' в строчке, но как эту "kilo" перевести в 3


Ответы (1 шт):

Автор решения: Dmitry

Как вам написали создайте словарь, который содержит значения для степеней, а не список

words = {'tera':12, 'giga':9, 'mega':6, 'kilo':3, 'deci':-1,'centi':-2, 'milli':-3, 'micro':-6, 'nano':-9}

test = "megananokilogigamicrometer"
result = 0

for key in words.keys():
  if key in test:
    result += words[key]

print(result)

# вывод 
# 3
→ Ссылка