2016-04-13 4 views
1

でリストを持つ値に置き換え:今私は社員や過去の企業の辞書作成したパイソン

{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] 
0

の第三マップを生成しますフィールドとして。

class Company: 
    __init__(self): 
     self.employees = [] 

company1 = Company() 
company1.employees.append("person1") 
company1.employees.append("person2") #OR 
company1.employees = ["person1","person2"] 

これは、かなり清潔である間に隣接行列の抽象化(単純にcompany1.employeesへのアクセス)を可能にします。

関連する問題