Я выполняю задание, которое говорит мне отсортировать этот список студентов в алфавитном порядке, а затем напечатать «Имя, которое вы получите A» для первой половины списка и «Имя, которое вы получите B» для второй половины списка. Я отсортировал его по алфавиту, но не знаю, как разделить список.
students = ['john','henry', 'abigail', 'zach', 'taylor', 'beatrice']
students = [student.capitalize() for student in students]
sorted_list = sorted(students)
print(sorted_list)
Здесь может помочь нарезка. Посмотрите на результат print(sorted_list[:len(sorted_list)//2]).






Расширяя комментарий Матиаса, вы можете сделать что-то вроде этого. Сначала вы перебираете первую половину и печатаете имена, а затем перебираете другую половину.
students = ['john','henry', 'abigail', 'zach', 'taylor', 'beatrice']
for a_student in students[:len(students)//2]:
print(f"{a_student.capitalize()} you get an A")
for b_student in students[len(students)//2:]:
print(f"{b_student.capitalize()} you get a B")
Это выводит:
John you get an A
Henry you get an A
Abigail you get an A
Zach you get a B
Taylor you get a B
Beatrice you get a B
Более компактным, но нечитаемым способом было бы создать текст задания прямо в списке и распечатать его.
students = ['john','henry', 'abigail', 'zach', 'taylor', 'beatrice']
assignments = [f"{name.capitalize()} you get an A" if i < len(students)//2 else f"{name.capitalize()} you get a B" for i, name in enumerate(students)]
print('\n'.join(assignments))
Пожалуйста, обновите свой вопрос с помощью кода, который печатает список в нужном формате. . . кроме бита, который печатает
AилиB. Вы, кажется, хорошо знакомы со списками, поэтому я уверен, что вы могли бы перебрать список.