【问题标题】:Reading and writing to/from csv files读取和写入 csv 文件
【发布时间】:2018-07-09 09:50:47
【问题描述】:

我希望我的程序读取 2 列(第一列和第二列)并将它们添加到数组中。它们相互依赖——因此它们需要并排书写,如第一行(两列)彼此相邻,然后是第二行,依此类推。

我已设法将第一列(包含名称)写入数组,但没有设法将第二列写入数组。

rownum=1
array=[]
for row in reader:
    if row[1] != '' and row[1] != 'Score':
        array.append(row[1])
        rownum=rownum+1
        if rownum==11:
            break

我试图追加多行,但它返回错误消息“仅接受一个参数”。 任何想法我可以如何做到这一点,以便我可以从 csv 文件中引用每个名称的分数

【问题讨论】:

    标签: python arrays csv


    【解决方案1】:

    尝试使用dictionary。

    d = {} #curly braces denote an empty dictionary
    for row in reader:
        d[row[0]] = row[1]
    

    d,在这种情况下,将是一个字典,其中 csv 文件的第一列作为键,第二列作为对应的值。

    您可以像访问列表一样访问它。假设您将 Brian,80 作为 csv 文件中的条目之一,d["Brian"] 将返回 80。

    编辑

    OP 已要求(在 cmets 中)提供更完整的代码版本。假设 OP 的代码已经可以工作,我将修改该代码,使其与字典一起工作:

    rownum=1
    d={} #denotes an empty dictionary
    for row in reader:
        if row[1] != '' and row[1] != 'Score':
            d[row[0]]=row[1] #first column is the key/index, second column is the value
            rownum=rownum+1
            if rownum==11:
                break
    

    【讨论】:

    • 这个答案中的假设是键是唯一的并且没有重复的行。
    • 您能否添加更多细节并显示完成的代码是什么样的?我玩过这个,无法让代码工作。
    • @jpp 是的,谢谢你提到这一点。 CallumTwig 我已根据您的要求编辑了答案。如果有效,请通知我。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-15
    • 2022-01-23
    • 2011-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多