मैं अजगर के लिए नया हूं, और मैंने कुछ जगह से कुछ कोड स्निपेट पढ़ा है। यह गिनती प्रकार का कार्यान्वयन है।डिफ़ॉल्ट मान 1 के साथ डिफ़ॉल्ट डिक्शनरी?
कोड के रूप में नीचे है:
from collections import defaultdict
def sort_colors(A):
ht = {} # a hash map
ht = defaultdict(lambda:0, ht) # with default value 1
for i in A:
ht[i] += 1
ret = []
for k in [0, 1, 2]:
ret.extend([k]*ht[k])
return ret
समारोह के पहले दो लाइनों में रूप में, यह
ht = {}
ht = defaultdict(lambda:0, ht)
है मैं इस तुम कृपया मुझे आंकड़ा मदद initialization.Could के बारे में काफी स्पष्ट नहीं कर रहा हूँ यह बाहर? और, क्या हम इन दो पंक्तियों को निम्नलिखित के साथ बदल देंगे? जब आप एक कुंजी मौजूद नहीं है कि के साथ एक नियमित dict
तक पहुँचने का प्रयास
ht = defaultdict(int) # default value 0
रिटर्न जब तक आप संग्रह से आयात कर रहे हैं, साथ ही सिर्फ एक 'Counter' उपयोग कर सकते हैं। – Kevin
डिफ़ॉल्ट मान वहाँ नहीं है 1, यह 0. –
कोशिश' हिंदुस्तान टाइम्स = defaultdict (लैम्ब्डा है : 1) # डिफ़ॉल्ट मान 1' के साथ और हटाएं पिछली पंक्ति में 'ht' के मान को बदलने के बाद से पहले 'ht = {}' जो कुछ भी पूरा नहीं करता है। – martineau