Я снова с моей текущей сагой вопросов о распределении студенческих проектов. Благодаря Moron (кто не соответствует его тезке) У меня есть немного направление для части оценки моего проекта.Использование Python для получения вывода CSV для следующего примера
Идея задания и венгерский алгоритм Я хотел бы выразить свои данные в виде CSV-файла, который будет выглядеть так, как в форме электронных таблиц. Это основано на структуре, которую я видел here.
| | Project 1 | Project 2 | Project 3 |
|----------|-----------|-----------|-----------|
|Student1 | | 2 | 1 |
|----------|-----------|-----------|-----------|
|Student2 | 1 | 2 | 3 |
|----------|-----------|-----------|-----------|
|Student3 | 1 | 3 | 2 |
|----------|-----------|-----------|-----------|
Чтобы сделать его менее загадочным: строки являются учащимися/агенты, а столбцы представляют собой проекты/задачи. Очевидно, ОДИН проект может быть назначен ОДНОМУ студенту. Короче, это мой проект. Поля представляют собой весы предпочтений, которые учащиеся ставили на проекты (от 1 до 10). Если этот пробел отсутствует, этот ученик не хочет этого проекта, и у него нет возможности назначить его.
В любом случае, мои данные хранятся в словарях. В частности, студенты и проекты словари, такие, что:
students[student_id] = Student(student_id, student_name, alloc_proj, alloc_proj_rank, preferences)
where preferences is in the form of a dictionary such that
preferences[rank] = {project_id}
и
projects[project_id] = Project(project_id, project_name)
Я знаю, что sorted(students.keys())
даст мне отсортированный список всех студенческих идентификаторов, которые населяют заголовки строк и sorted(projects.keys())
будет дайте мне список, который мне нужен, чтобы заполнить метки столбцов. Таким образом, для каждого ученика я бы зашел в их словарь предпочтений и соответствовал применимым проектам для рангов. Я могу так много сделать.
Где я ошибаюсь, я понимаю, как создать CSV-файл. Любая помощь, указатели или хорошие учебные пособия будут высоко оценены.
Так что мало пустое пространство в левом верхнем углу просто пустая строка? – PizzAzzra
Да, это создаст пустое поле в вашем файле csv – dgraves