这是我关于StackOverflow的第一个问题,我已经搜索了很多网站,但找不到我想要的(或没有注意到)。请不要阻止我:)
另外,这是我第一次使用Python进行编程,对此我感到困惑。
我有一个文本文件,里面有3列,用空格隔开。这些列是DeptID
,CourseID
和NumberofStudentsEnrolled
。
这是示例数据:
101 10001 23
102 10002 30
102 10004 5
102 10005 13
105 10006 59
105 10007 77
因此,每当我调用
DeptID
索引和CourseID
索引时,该程序都会为我提供注册学生的数量。示例:
NumberofEnrolled("101","10001")
应该给出23
作为答案。我应该改用矩阵吗?因为我有点迷路。我知道我想要的,但是我不知道
Python
中的名字。import numpy
depts = []
courses = []
file = open("C:\\Info.txt", "r")
# SPLIT EVERY LINE INTO 3 PIECES : DeptID , CourseID , Enrolled
for line in file:
depts.append(line.split()[0]) # ADD Depts
courses.append(line.split()[1]) # ADD Courses
# CLOSE THE FILE
file.close()
# I HAVE TRIED NUMPY BUT COULDN'T HANDLE WITH IT.
numpyList = numpy.zeros((57, 57), dtype = numpy.int32)
dept_array = numpy.array(dept)
course_array = numpy.array(course)
test_dict = {}
for i in range(len(dept_array)):
test_dict[dept_array[i]] = course_array[i]
test_dict的输出为:
{'101': '10001', '102': '10005', '105': '10007'}
此输出仅将最后一个数据用于多个数据。我想我需要一个可以容纳多个对的类型。
最佳答案
您可以轻松地将数据读入词典的字典中:
data = {}
for line in file:
dept, course, num_students = line.split()
data.setdefault(dept, {})[course] = int(num_students)
现在您可以查找:
>>> data["101"]["10001"]
23
关于Python : Can Dictionary be used for indexing?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44234766/