【问题标题】:Using Python to get a CSV output for the following example使用 Python 获取以下示例的 CSV 输出
【发布时间】:2010-05-30 15:59:04
【问题描述】:

我又带着我正在进行的学生项目分配问题的传奇回来了。感谢Moron(与他同名的人不匹配)我对我的项目的评估部分有了一些指导。

考虑分配问题和匈牙利算法的想法,我想以 .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()) 会给我一个所有学生 ID 的排序列表,它将填充行标签,sorted(projects.keys()) 会给我一个我需要填充列标签的列表。因此,对于每个学生,我都会进入他们的偏好词典并将适用的项目与排名相匹配。我能做那么多。

我失败的地方是了解如何创建 .csv 文件。任何帮助、指点或好的教程都将受到高度赞赏。

【问题讨论】:

    标签: python csv project


    【解决方案1】:

    查看 csv 模块。基本上,您只需要将数据放入某种序列(列表、元组等),然后您就可以做到csv.writerow()

    import csv
    cot=csv.writer(open('file.csv','wb'))
    
    tmp=[['','Project 1','Project 2','Project 3'],
         ['Student1','','2','1'],
         ['Student2','1','2','3'],
         ['Student3','1','3','2']]
    for t in tmp:
        cot.writerow(t)
    

    【讨论】:

    • 所以左上角的那个小空白只是一个空字符串?
    【解决方案2】:

    csv 模块就是为此而生的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-14
      • 1970-01-01
      • 2014-06-04
      • 1970-01-01
      • 2018-11-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-24
      相关资源
      最近更新 更多