как проверить, существует ли значение в словаре

#python #dictionary

#питон #словарь #python

Вопрос:

Ниже приведен мой словарь. Как я могу проверить, есть ли данное значение в словаре? Например, если пользователь вводит число 129, то как мне проверить, существует ли это число в любом ключе A или B ?

 studentData = {
          'A': [127, 104],
          'B': [128,  204, 205, 118]
       }

if studID <= 0 :
    print ('Invalid id. Student id must be positive')
    studID = int(input('Enter student id: '))
elif studID in studentData.values() == True:   # how to check if input exist?
    print (f'fail')        
else:
    studentData[modCode].append(int(studID))
    print ("complete")     
    break 
  

Комментарии:

1. if number in studentData['A'] or number in studentData['B'] ?

2. if any(studID in vals for vals in studentData.values())

3. studentData.values() выдает список (списки целых чисел). Вам нужно проверить, studID находится ли оно в каждом из (списка int). В настоящее время вы просто проверяете, есть ли studID в списке списков (чего, очевидно, нет, потому что studID это int , которого нет в списке списков)

4. @GreenCloakGuy, «Вам нужно сделать это и вот почему» помогает больше, чем «Сделать это».

5. @GreenCloakGuy спасибо, вы правы :))

Ответ №1:

Предполагая следующее:

 studentData = {
    'A': [127, 130, 123, 210, 109, 128, 204, 206, 111, 129, 103, 116, 112, 209, 122, 202, 121, 101, 113, 104],
    'B': [128, 206, 101, 111, 127, 119, 113, 207, 117, 204, 106, 123, 103, 105, 205, 118]
}
  

И это modCode содержит либо 'A' , либо 'B' :

 if studID <= 0 :
    print ('Invalid id. Student id must be positive')
    studID = int(input('Enter student id: '))
elif studID in studentData[modCode]:   # how to check if input exist?
    print (f'Add to Enrolment operation failed. Student is already enrolled in {modCode}')        
else:
    studentData[modCode].append(studID)
    print ("Add to Enrolment operation has successfully completed")
  

Ответ №2:

вы можете легко проверить с помощью инструкции «in» в значении ключа

 for key in ['A', 'B']:
    print(studID in studentData[key])