#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])