में मैं v2.7 अजगर शब्दकोशों, इस तरह एक के अंदर नेस्टेड एक उपयोग कर रहा हूँ:नेस्टेड शब्दकोशों प्रारंभ करने में कैसे अजगर
def example(format_str, year, value):
format_to_year_to_value_dict = {}
# In the actual code there are many format_str and year values,
# not just the one inserted here.
if not format_str in format_to_year_to_value_dict:
format_to_year_to_value_dict[format_str] = {}
format_to_year_to_value_dict[format_str][year] = value
यह एक खाली शब्दकोश से पहले साथ प्रथम स्तर शब्दकोश प्रारंभ करने में थोड़ा अनाड़ी लगता है दूसरे स्तर के शब्दकोश में डाला गया। क्या एक मूल्य निर्धारित करने का कोई तरीका है जबकि एक ही समय में पहले स्तर पर एक शब्दकोश बनाना है यदि कोई पहले से मौजूद नहीं है? मैं कल्पना सशर्त प्रारंभकर्ता से बचने के लिए कुछ इस तरह:
def example(format_str, year, value):
format_to_year_to_value_dict = {}
add_dict_value(format_to_year_to_value_dict[format_str], year, value)
इसके अलावा, क्या भीतरी dict अपने आप में एक सूची में प्रारंभ चाहिए?
def example(format_str, year, value):
format_to_year_to_value_dict = {}
# In the actual code there are many format_str and year values,
# not just the one inserted here.
if not format_str in format_to_year_to_value_dict:
format_to_year_to_value_dict[format_str] = {}
if not year in format_to_year_to_value_dict[format_str]:
format_to_year_to_value_dict[format_str][year] = []
format_to_year_to_value_dict[format_str][year].append(value)
क्या आंतरिक नियम के मामले में सूचियों के लिए डिफ़ॉल्ट डिफॉल्ट की तरह कुछ भी है? – WilliamKF
बस उसमें संपादन कर रहा था। आपको केवल एक फ़ंक्शन की आवश्यकता है जो 'डिफॉल्टडिक्ट (सूची)' लौटाता है और न कि '{} 'गायब कुंजी के लिए। –