将每行的第一个单词分配到字典

时间:2018-03-19 03:19:35

标签: python function numpy dictionary

所以我在家庭作业上有一个问题,就是要求用一个文本文件来创建一个字典,其中包含作为学生姓名和相应值的字符作为NumPy 1维矩阵。

文本文件的格式如下:

John 23 53 54 56 58    
Jane 89 54 56 76 93    
Marie-Claire 56 68 76 86 92

所有姓名都是一个单词或一个名称,并且所有学生在他们的文件行上都有相同的成绩。问题是我无法弄清楚如何只使用文本文件中每行的第一个单词(名称)作为关键。这是我的尝试:

def student_grade(filename):
    with open('filename','r') as file:
        Grade_Dict = {}
        for line in file:
            words = line.split(' ')
            Grade_Dict[words[0]]= np.array(words[1:])

注意:问题是要求制作字典并在函数中读取文件。

我只是对如何测试我是否有任何正确的代码感到困惑。

1 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情:

grade={}
with open('file.txt','r') as f:
    for line in f:
        data=line.split()
        grade[data[0]]=np.array(list(map(int,data[1:])))
print(grade)

输出:

{'Marie-Claire': array([56, 68, 76, 86, 92]), 'Jane': array([89, 54, 56, 76, 93]), 'John': array([23, 53, 54, 56, 58])}

如果您不想在int中使用数字:

grade={}
with open('file.txt','r') as f:
    for line in f:
        data=line.split()
        grade[data[0]]=np.array(data[1:])
print(grade)