का उपयोग करके दस्तावेज़ में प्रत्येक शब्द की घटना की गणना कैसे कर सकता हूं मेरे पास ग्रंथों से युक्त पायथन में सूचियों की एक सूची है। यह प्रत्येक दस्तावेज़ से सेट शब्दों की तरह है। इसलिए प्रत्येक दस्तावेज़ के लिए मेरे पास एक सूची है और फिर सभी दस्तावेजों के लिए सूची में है।डिक्शनरी समझ
सभी सूची में केवल अनन्य शब्द हैं। मेरा उद्देश्य पूरे दस्तावेज़ में प्रत्येक शब्द की घटना को गिनना है। मैं नीचे दिए गए कोड का उपयोग करके सफलतापूर्वक ऐसा करने में सक्षम हूं:
for x in texts_list:
for l in x:
if l in term_appearance:
term_appearance[l] += 1
else:
term_appearance[l] = 1
लेकिन मैं ऐसा करने के लिए शब्दकोश समझ का उपयोग करना चाहता हूं।
from collections import defaultdict
term_appearance = defaultdict(int)
{{term_appearance[l] : term_appearance[l] + 1 if l else term_appearance[l] : 1 for l in x} for x in texts_list}
संदर्भ के लिए पिछला पोस्ट:
Simple syntax error in Python if else dict comprehension
यह पहली बार है, मैं समझ शब्दकोश लिखने की कोशिश कर और stackoverflow में पिछले मौजूदा पदों का उपयोग कर रहा है, मैं निम्नलिखित लिखने के लिए सक्षम किया गया है{{l : term_appearance[l] + 1 if l else 1 for l in x} for x in texts_list}
ऊपर कोड जनसंपर्क में सफल रहा था:
जैसा कि ऊपर पोस्ट में सुझाव दिया है, मैं भी निम्न कोड का इस्तेमाल किया है
[]
[]
[]
[]
Traceback (most recent call last):
File "term_count_fltr.py", line 28, in <module>
{{l : term_appearance[l] + 1 if l else 1 for l in x} for x in texts_list}
File "term_count_fltr.py", line 28, in <setcomp>
{{l : term_appearance[l] + 1 if l else 1 for l in x} for x in texts_list}
TypeError: unhashable type: 'dict'
मेरे वर्तमान समझ में सुधार करने में किसी भी मदद की बहुत सराहना की जाएगी: खाली सूचियों oducing लेकिन अंत में निम्नलिखित ट्रैसबैक फेंक दिया।
उपरोक्त त्रुटि को देखते हुए, मैं भी
[{l : term_appearance[l] + 1 if l else 1 for l in x} for x in texts_list]
यह किसी भी त्रुटि के बिना भाग गया कोशिश की, लेकिन उत्पादन केवल खाली सूचियों था।
गुड लक ... यहाँ एक विचार है, डिफ़ॉल्ट dict शून्य करने के लिए लागू हो जाएगी, आप अगर-बाकी हिस्सा की आवश्यकता न पड़े इसका मतलब है । – nehemiah