2016-07-25 3 views
-2

Я пытаюсь создать функцию, которая выводит только значение ключа, указанного в параметре. Но это не совсем то, что я хочу сделать. Пожалуйста, посмотрите мой код и посмотрите, где я ошибаюсь? БлагодаряКак распечатать только значения ключей в словаре?

list = { 
    "David": 42, 
    "John": 11, 
    "Jack": 278 
} 

def get_marks(student_name): 
    for marks in list.items(): 
     print(marks) 

get_marks("David") 
+1

Умм, ' печать (список [student_name]) '? –

+0

@Rawing Лучше использовать функцию 'get' для dict, чтобы предотвратить получение ключевой ошибки, если элемент не существует – HolyDanna

+0

Возможный дубликат http://stackoverflow.com/questions/5904969/python- How-to-print-a-dictionarys-key –

ответ

0

Вы пытаетесь это:

def get_marks(student_name): 
    print(list.get(student_name)) 
0

Вы можете получить доступ к значению на ключ, используя my_dict[student_name] но используя get метод словаря является гораздо более безопасным, как она возвращается None, когда ключ не найдено:

def get_marks(student_name): 
    print my_dict.get(student_name) 

Я переименовал свой словарь из list к my_dict, чтобы избежать затенения встроенной класс списка.

0
list = { 
"David": 42, 
"John": 11, 
"Jack": 278 
} 

def get_marks(student_name): 
    print list[student_name] 

get_marks("David") 
0

Вы можете использовать get() метод словаря как так:

def get_marks(student_name): 
    return list.get(student_name) 

или вы можете просто использовать basic dictionary access (Section 5.5) и обрабатывать недостающие ключи на свои:

def get_marks(student_name): 
    if student_name in list: 
     return list[student_name] 
    else: 
     #Key not in dict, do something 
Смежные вопросы