簡體   English   中英

Python function 將文本文件讀入字典

[英]Python function to read a text file into a dictionary

我有一個包含以下行的文本文件:

103;1;2

103;6;2

其中第一項是參加人數,第二項是所學課程,第三項是費率。

我想將某些課程的評分合並到字典中。

該字典應將參與者編號作為鍵,並將屬於該參與者的評級列表作為值。 總共有7節課。 如果沒有上課,列表中的評分應為“NA”。

所以對於上面的文本文件,function 應該返回一個字典,如下所示:

{'103':[2.0,'NA','NA','NA','NA',2.0,'NA']}

我需要怎么做?

我制作了一個 function 以我想要的方式拆分項目並使用右鍵創建一個字典:

def ratings():

    dictionary = {}
    file = open("ratings.csv")
    for line in file:
        line = line.split(";")
        dictionary[line[0]] = []
    return dictionary

此代碼返回我的字典如下:

{'103':[]}

但是,我確實在處理需要返回的字典的值部分,即每個參與者的評分列表。 如果有缺失值,我如何將評級合並到一個列表中並插入“NA”。

問題在這里:

dictionary[line[0]] = []

你告訴 Python 那個字典中鍵103的值是[]是空的。

你可能想要這樣的東西:

def ratings():
    dictionary = {}
    file = open("ratings.csv")
    for line in file:
        line = line.split(";")
        if line[0] in dictionary: # already have some data for the participant
            dictionary[line[0]][line[1] - 1] = line[2] # minus 1 because Python is zero-indexed
        else: # new participant
            dictionary[line[0]] = ['NA','NA','NA','NA','NA','NA','NA',]
            dictionary[line[0]][line[1] - 1] = line[2] # minus 1 because Python is zero-indexed
    return dictionary

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM