[英]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.