Данный список словаря информации о сотрудниках, как искать по идентификационному номеру, используя DICT или комбинацию LIST, когда это применимо - PullRequest
0 голосов
/ 31 октября 2018

Случай: мне нужно получить пользовательский ввод идентификатора сотрудника, используя input() для просмотра сведений о сотруднике, содержащихся в словаре.

Проблема: Но вывод input() является строкой. Как я могу связать идентификатор сотрудника с поиском их информации, уже содержащейся в словаре. Я пытаюсь использовать LIST, но безуспешно.

Код:

Данный список словаря (идентификационный номер сотрудника), содержащий сведения о сотруднике

ID001 ={'Name':'John Clause', 'Age':'21' , 'Gender':'Male'}    
ID002 ={'Name':'Greg Pyuse' , 'Age':'21' , 'Gender':'Male'}    

Заполнить список словарем "

List = [ID001,ID002]

Требуется ввод данных пользователем () для запроса словаря, т. Е. «ID001» или «ID002»

ID = input()

Я хочу отобразить индекс списка, соответствующий словарю, введенному пользователем

ID_Index=List.index(ID)

Если я бегу:

ValueError Traceback (самый последний вызов последний) в 3 4 # Получить индекс списка идентификационного номера ----> 5 ID_Index = List.index (ID) 6 печать (тип (ID)) 7 # Отображение содержимого списка с определенным индексом

ValueError: 'ID002' отсутствует в списке

Ответы [ 2 ]

0 голосов
/ 02 ноября 2018

Я разработал свою резолюцию на основе ответа bhlsing для будущих зрителей

Определить словарь

info_Dict={}
Student={}

Создать словарь с тремя ключами и значениями

for any_variable in range(0,3):
    id=input('Enter I.D. ') 

#Populate dictionary (info_Dict) with student's information using input()
    info_Dict['Name']=input("Name: ") 
    info_Dict['Age'] =input("Age: ")
    info_Dict['Course']=input("Course: ")

#Add (info_Dict) to another dictionary (Student) whose keys are student's I.D.
    Student['ID00'+id]=(info_Dict)

#Empty Dictionary of students (info_Dict) so we can add new entry 
#on next loop - it act as temporary variable.
    info_Dict={}  

print(Student)

Если я запустился, он будет запрашивать входные данные в 3 циклах, я ввел следующее:

Enter I.D. 1
Name: MATT MONROE 
Age: 88
Course: PYTHON 
Enter I.D. 2
Name: JAMES COOPER 
Age: 68
Course: JAVA 
Enter I.D. 3
Name: CATE HOLMES 
Age: 52
Course: AUTOMOTIVE 

{'ID001': {'Name': 'MATT MONROE ', 'Age': '88', 'Course': 'PYTHON '},
 'ID002': {'Name': 'JAMES COOPER ', 'Age': '68', 'Course': 'JAVA '},
 'ID003': {'Name': 'CATE HOLMES ', 'Age': '52', 'Course': 'AUTOMOTIVE '}}

Теперь я могу редактировать на основе идентификационного номера

Student['ID002']={'NAME':input('NAME'),'Age':input('Age'), 'Course':input('Course')}
Student

Если я запустлю запрос на ввод, он переопределит предыдущие данные ID002

NAMEANNE CURTIS 
Age32
CourseFINE ARTS 

{'ID001': {'Name': 'MATT MONROE ', 'Age': '88', 'Course': 'PYTHON '},
 'ID002': {'NAME': 'ANNE CURTIS ', 'Age': '32', 'Course': 'FINE ARTS '},
 'ID003': {'Name': 'CATE HOLMES ', 'Age': '52', 'Course': 'AUTOMOTIVE '}}
0 голосов
/ 31 октября 2018

Если вы хотите иметь возможность искать запись по ключу, вы должны использовать вместо этого dict:

Dict = {
    'ID001': {'Name':'John Clause', 'Age':'21' , 'Gender':'Male'},
    'ID002': {'Name':'Greg Pyuse' , 'Age':'21' , 'Gender':'Male'}
}

, чтобы вы могли использовать Dict[ID], чтобы получить дикт {'Name':'John Clause', 'Age':'21' , 'Gender':'Male'}, если ID равно ID001.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...