Vikman:
私は、Pythonの初心者ですと私は小さなプロジェクトに取り組んでいますが、私は出力が欲しかっ得ることができません。
これは私がメールのみのを維持し、重複値をせずにプロジェクトに関連付けるために持って、私が持っているエントリ値です。この私のエントリー:
my_dictionnary = [
{
"email": ["email1", "email2"],
"project":"projet1",
"project_name":"Project1"
},
{
"email": ["email1", "email2"],
"project":"projet2",
"project_name":"Project2"
},
{
"email": ["email2"],
"project":"projet3",
"project_name":"Project3"
}
]
私は次のように出力に含まを作成したいと思います:
my_dictionnary_parsed = {
"email2": ["projet1", "projet2", "projet3"],
"email1": ["projet1", "projet2"]
}
私は、次の機能があります。
def formating_email(list_of_email):
dictionnary={}
for email_data in list_of_email_data:
for cp in email_data['cp_related']:
print(cp,email_data['ticket_related_project'])
dictionnary[cp] = email_data
しかし、値がオーバーライド保ちます...
Prakhar Londhe:
現在の1が間違っているので、あなたは、正しい辞書構造を持っていると仮定すると、あなたが直接設定されていますdictionnary[cp] = email_data
。それはリストであるので、あなたが代わりに追加する必要があります。
また、としてあなたの変数に名前を付けないでくださいdictionnary
。それらにいくつかの有効な名前を付け、その機能に対応しているようなprojects_per_email
、または何か他のもの。
def formating_email(list_of_email):
dictionnary={}
for email_data in list_of_email_data:
for cp in email_data['cp_related']:
print(cp,email_data['ticket_related_project'])
if dictionnary.get(cp) == None:
dictionnary[cp] = [email_data]
else:
dictionnary[cp].append(email_data)