我创建了一份员工和过去公司的词典:
{person 1: [company 2, company 3], person 2: [company 2]}
现在,我希望将每个列表中的每个公司替换为在该公司工作过的人员列表。
我希望最终的结果是一个邻接列表(即一个人与人同时作为关键词和价值观的词典。
答案 0 :(得分:0)
您需要循环浏览地图并创建另一张company: people
地图,然后使用该地图生成people: people
的第三张地图
pc_map = # your person: company map
cp_map = {}
for person, companies in pc_map.items():
for company in companies:
cp_map.setdefault(company, []).append(person)
pp_map = {}
for person, companies in pc_map.items():
pp_map[person] = [cp_map[company] for company in companies]
答案 1 :(得分:0)
这是假设的还是具体的例子?因为实现相同效果的最佳方法是使用Company对象存储作为字段为其工作的人员列表。
class Company:
__init__(self):
self.employees = []
company1 = Company()
company1.employees.append("person1")
company1.employees.append("person2") #OR
company1.employees = ["person1","person2"]
这将允许邻接矩阵抽象(简单地访问company1.employees),同时仍然相当干净。