问题描述
我有两个课
class Club:
def __init__(self,id,name):
self.id = id
self.name = name
class Student:
def __init__(self,name,clubs):
self.id = id
self.name = name
self.clubs = clubs
我想要一本字典,其中的关键是俱乐部名称,值是学生名单。
应用程序中大约有30种不同的关系。
有没有一种通用的方法?
解决方法
粗略的逆变器可能如下所示。
def reverse(elems,array_name,i_key):
dic = {}
for elem in elems:
for elem_field in elem[array_name]:
key = elem_field[i_key]
if key not in dic:
dic[key] = []
dic[key].append(elem)
return dic
club_a = { 'name': 'a'}
club_b = { 'name': 'b'}
club_c = { 'name': 'c'}
stud_a = { 'id': 1,'clubs': [club_a,club_b]}
stud_b = { 'id': 2,'clubs': [club_b,club_c]}
print(reverse([stud_a,stud_b],'clubs','name'))
# a: stud_a
# b: stud_a,stud_b
# c: stud_b