将列表从.txt文件转换为字典

时间:2014-04-30 00:07:04

标签: list python-3.x dictionary

好的,我已经尝试了Convert a list to a dictionary in Python中的所有方法,但我似乎无法使其正常工作。我正在尝试将我从.txt文件制作的列表转换为字典。到目前为止,我的代码是:

import os.path
from tkinter import *
from tkinter.filedialog import askopenfilename
import csv


window = Tk()
window.title("Please Choose a .txt File")
fileName = askopenfilename()

classInfoList = []
classRoster = {}
with open(fileName, newline = '') as listClasses:
    for line in csv.reader(listClasses):
        classInfoList.append(line)

.txt文件的格式为: 教授 类 学生

一个例子是: 怀特教授 Chem 101 Jesse Pinkman,Brandon Walsh,Skinny Pete

我想要的输出是以教授为关键词的字典,然后是价值观的学生的班级和列表。

OUTPUT: 
{"Professor White": ["Chem 101", [Jesse Pinkman, Brandon Walsh, Skinny Pete]]}

然而,当我尝试上述帖子中的内容时,我不断收到错误。

我可以在这做什么?

由于

1 个答案:

答案 0 :(得分:1)

由于组成字典的数据是连续的行,因此您必须一次处理三行。您可以在文件句柄上使用next()方法,如下所示:

output = {}
input_file = open('file1')
for line in input_file:
    key = line.strip()
    value = [next(input_file).strip()]
    value.append(next(input_file).split(','))
    output[key] = value
input_file.close()

这会给你:

{'Professor White': ['Chem 101',
                     ['Jesse Pinkman, Brandon Walsh, Skinny Pete']]}