У меня проблемы с поиском дубликатов в моей программе. Мне нужно добавить нового студента в мой список, но если введенный идентификатор уже используется, программа должна напечатать, что идентификатор уже используется и не может быть добавлен в список. Мой список:
ID, NAME, MAJOR, SCORE = 0, 1, 2, 3
s_list = [
['01', 'Smith', 'CS', 100],
['02', 'Jones', 'CS', 90],
['03', 'Anderson', 'Math', 80],
['04', 'Johnson', 'Bio', 99],
]
def stu_list(s_list):
print('Student List:')
print('Id'.ljust(5), 'Name'.ljust(12), 'Major'.ljust(9), 'Score')
for ID, NAME, MAJOR, SCORE in s_list:
print(f'{ID:6}{NAME:13}{MAJOR:8}{SCORE:5}')
print('--End of List--\n')
ОБНОВЛЕНО:
def insert_stu(s_list):
print('Adding a student.')
n_ID = input('ID: ')
n_NAME = input('Name: ')
n_MAJOR = input('Major: ')
n_SCORE = int(input('Score: '))
id_list = []
for stud in s_list:
id_list.append(stud[0])
if n_ID in id_list:
print(f'{n_ID} already exists, unable to add student')
elif n_ID not in s_list:
new_stu = [n_ID, n_NAME, n_MAJOR, n_SCORE]
s_list.append(new_stu)
print(f'Not Found \nAdding to the list.')
stu_list(s_list)
return insert_stu(s_list)
ВЫХОД:
Adding a student.
ID: 02
Name: Cris
Major: math
Score: 23
Not Found
Adding to the list.
Student List:
Id Name Major Score
01 Smith CS 100
02 Jones CS 90
03 Anderson Math 80
04 Johnson Bio 99
09 new cs 90
02 Cris math 23 ##still adding duplicate id's
--End of List--
Когда я запускаю функцию, она добавляет нового ученика независимо от того, является ли введенный идентификатор Уже в использовании. Я думаю, что у меня проблема с получением переменной ID
для связи с первым столбцом в s_list ('01', '02', ...).