2015-10-24 3 views
0

Я создал словарь ключей и значений, каждый из которых имеет свой собственный value. Как показано ниже:Как вернуть значения суммы python из словаря

num = { 
    'a': '1', 
    'b': '2', 
    'c': '3', 
    'd': '4', 
    'e': '5', 
    'f': '6', 
    'g': '7', 
    'h': '8', 
    'i': '9', 
    'j': '10', 
    'k': '11', 
    'l': '12', 
    'm': '13', 
    'n': '14', 
    'o': '15', 
    'p': '16', 
    'q': '17', 
    'r': '18', 
    's': '19', 
    't': '20', 
    'u': '21', 
    'v': '22', 
    'w': '23', 
    'x': '24', 
    'y': '25', 
'z': '26'} 

Я хочу принять вход пользователя из слова. например, деревья.

Затем разбить его на человека letters. Обратитесь к моему dictionary, затем возвращайте сумму его значений в соответствии со словарем.

+3

И что вы пробовали до сих пор? Вы хотите код? Затем вы должны предоставить то, что вы можете сделать самостоятельно. –

+0

@brayo: Если вам нравится мой ответ, вы можете принять это. –

+0

Нет причин иметь словарь со строковыми значениями ints в качестве значений. Фактически, вы можете импортировать строку; dictionary = {k: i для i, k в enumerate (string.ascii_lowercase)} – dwanderson

ответ

0

Попробуйте:

di = {'a':'1','b':'2','c':'3','d':'4','e':'5','f':'6','g':'7','h':'8','i':'9','j':'10','k':'11','l':'12', 'm':'13','n':'14','o':'15','p':'16','q':'17','r':'18','s':'19','t':'20','u':'21','v':'22','w':'23','x':'24','y':'25' ,'z':'26'} 
p = raw_input() 
l = map(int, [di[x] for x in p]) 
print sum(l) 
+0

Не могли бы вы предоставить ген xp для отображения? – dwanderson

2

Вы можете сделать это нравится:

num = {'a':'1','b':'2','c':'3','d':'4','e':'5','f':'6','g':'7','h':'8','i':'9','j':'10','k':'11','l':'12','m':'13','n':'14','o':'15','p':'16','q':'17','r':'18','s':'19','t':'20','u':'21','v':'22','w':'23','x':'24','y':'25','z':'26'} 
name = raw_input("Enter name: ") 
L = list(name) 

print sum([int(num[i]) for i in L]) 

Вход:

Enter name: mary 

Выход:

57 
+0

Нет необходимости в скобках внутри суммы, может потребоваться ген xp – dwanderson

+0

@dwanderson: Я использую python 2.7.9 IDE. Без скобок это ошибка возврата. –

0
l = list(input) 
print sum([int(num[i] for i in l]) 
+0

Хотя это, похоже, решает проблему OP, было бы даже лучше, если бы вы добавили некоторые объяснения, чтобы помочь OP, а другие с похожими вопросами понять, почему это работает, и как они могут применить его к своим собственным проблемам. – theB

+0

Нет необходимости в скобках внутри суммы, она также может принимать ген xp – dwanderson

Смежные вопросы