用 python 中的列表替换值
Replace values with lists in python
我创建了一个员工和过去公司的字典:
{person 1: [company 2, company 3], person 2: [company 2]}
现在,我想用在该公司工作过的人员列表替换每个列表中的每个公司。
我希望最终结果是一个邻接列表(即以人为键和值的字典。
您需要遍历您的地图并创建 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]
这是假设的还是具体的例子?因为实现相同效果的最佳方法是拥有一个 Company 对象,该对象将为其工作的人员列表存储为一个字段。
class Company:
__init__(self):
self.employees = []
company1 = Company()
company1.employees.append("person1")
company1.employees.append("person2") #OR
company1.employees = ["person1","person2"]
这将允许邻接矩阵抽象(只需访问 company1.employees),同时仍然相当干净。
我创建了一个员工和过去公司的字典:
{person 1: [company 2, company 3], person 2: [company 2]}
现在,我想用在该公司工作过的人员列表替换每个列表中的每个公司。
我希望最终结果是一个邻接列表(即以人为键和值的字典。
您需要遍历您的地图并创建 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]
这是假设的还是具体的例子?因为实现相同效果的最佳方法是拥有一个 Company 对象,该对象将为其工作的人员列表存储为一个字段。
class Company:
__init__(self):
self.employees = []
company1 = Company()
company1.employees.append("person1")
company1.employees.append("person2") #OR
company1.employees = ["person1","person2"]
这将允许邻接矩阵抽象(只需访问 company1.employees),同时仍然相当干净。