在python字典中推送数据的更好方法

Shu*_*ota 1 python dictionary list python-3.x

我有四件事要使用push_to_dict方法推送到 dict user_post_dict

user_post_dict= {}

def push_to_dict(user_email, post_id, question_text, question_answer):
    if user_email in user_post_dict:
        if post_id in user_post_dict[user_email]:
            user_post_dict[user_email][post_id][question_text] = question_answer
        else:
            user_post_dict[user_email][post_id] = {}
            user_post_dict[user_email][post_id][question_text] = question_answer
    else:
        user_post_dict[user_email] = {}
        user_post_dict[user_email][post_id] = {}
        user_post_dict[user_email][post_id][question_text] = question_answer

push_to_dict('abc@gmail.com',1,'what is this?', 'this is something')
push_to_dict('abc@gmail.com',2,'what is that?', 'that is something')
push_to_dict('def@gmail.com',1,'what is this?', 'this is something')
push_to_dict('def@gmail.com',2,'what is that?', 'that is something')
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来优化代码或缩短代码。

Ani*_*ail 5

您可以使用defaultdict

from collections import defaultdict


user_post_dict= defaultdict(lambda : defaultdict(defaultdict))


def push_to_dict(user_email, post_id, question_text, question_answer):
    user_post_dict[user_email][post_id][question_text] = question_answer
Run Code Online (Sandbox Code Playgroud)