commit
73b7e5b9d7
|
@ -0,0 +1,31 @@
|
|||||||
|
import pandas as pd
|
||||||
|
import random
|
||||||
|
from itertools import product
|
||||||
|
|
||||||
|
names = ['Alice', 'Bob', 'Chunk', 'David', 'Eva', 'Frank']
|
||||||
|
course = ['A', 'B', 'C']
|
||||||
|
age = [random.randint(18, 20) for _ in range(len(names))]
|
||||||
|
|
||||||
|
|
||||||
|
stu = pd.DataFrame({
|
||||||
|
'name':names,
|
||||||
|
'sex':[random.randint(0, 1) for _ in range(len(names))],
|
||||||
|
'age':age,
|
||||||
|
})
|
||||||
|
|
||||||
|
stu.to_csv('data.csv')
|
||||||
|
|
||||||
|
p = product(names, course)
|
||||||
|
names.clear()
|
||||||
|
course.clear()
|
||||||
|
for x, y in p:
|
||||||
|
names.append(x)
|
||||||
|
course.append(y)
|
||||||
|
|
||||||
|
score = pd.DataFrame({
|
||||||
|
'name':names,
|
||||||
|
'course':course,
|
||||||
|
'score':[random.randint(0, 100) for _ in range(len(names))]
|
||||||
|
})
|
||||||
|
|
||||||
|
score.to_csv('score.csv')
|
@ -0,0 +1,42 @@
|
|||||||
|
import random
|
||||||
|
|
||||||
|
class Student:
|
||||||
|
def __init__(self, name, sno, sex, age):
|
||||||
|
self.name = name
|
||||||
|
self.sno = sno
|
||||||
|
self.sex = sex
|
||||||
|
self.age = age
|
||||||
|
self.score = dict()
|
||||||
|
self.total_score = 0
|
||||||
|
|
||||||
|
def update_score(self, course, score):
|
||||||
|
self.score[course] = score
|
||||||
|
self.total_score += score
|
||||||
|
|
||||||
|
def get_avg(self):
|
||||||
|
return self.total_score / len(self.score)
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
stu = dict()
|
||||||
|
with open('data.csv', 'r') as f:
|
||||||
|
lines = f.readlines()
|
||||||
|
for index, l in enumerate(lines):
|
||||||
|
if index == 0:
|
||||||
|
continue
|
||||||
|
w = l.split(',')
|
||||||
|
if len(w) > 1:
|
||||||
|
s = Student(w[1], w[0], w[2], w[3])
|
||||||
|
stu[w[1]] = s
|
||||||
|
with open('score.csv', 'r') as f:
|
||||||
|
lines = f.readlines()
|
||||||
|
for index, l in enumerate(lines):
|
||||||
|
if index == 0:
|
||||||
|
continue
|
||||||
|
w = l.split(',')
|
||||||
|
if len(w) > 1:
|
||||||
|
stu[w[1]].update_score(w[2], eval(w[3]))
|
||||||
|
stu = list(stu.values())
|
||||||
|
stu.sort(key=lambda x : x.get_avg())
|
||||||
|
for s in stu:
|
||||||
|
print("name:{}, avg:{}".format(s.name, s.get_avg()))
|
||||||
|
|
|
Loading…
Reference in new issue