✍️ دیکشنری را قبلاً برای نگهداری کلید و مقدار دیدهای؛ این بار از آن برای کم کردن کار تکراری استفاده میکنیم. بهجای اینکه برای هر کلمه دوباره تمام فهرست را بگردیم، یک بار از روی داده رد میشویم و تعداد هر کلمه را ثبت میکنیم. بعد هر پرسش «این کلمه چند بار آمده؟» با مراجعه به همان جدول پاسخ میگیرد.
words = ['ابر', 'باد', 'ابر', 'باران']
counts = {}
for word in words:
counts[word] = counts.get(word, 0) + 1
print(counts['ابر']) # 2
get برای کلید تازه مقدار اولیه صفر میدهد؛ بعد یک رخداد به آن اضافه میکنیم. هزینه حافظه به تعداد کلمههای متفاوت وابسته است، نه فقط تعداد کل ورودی. دسترسی دیکشنری در حالت معمول سریع است و این مسیر معمولاً یک پیمایش خطی میخواهد.
قرار نیست اینجا همه روشهای دیکشنری را دوباره مرور کنیم. هدف، ساختن اطلاعاتی است که مرحله بعدی مسئله لازم دارد؛ مثلاً تشخیص اولین کلمه یکتا. خطای رایج اینه که شمارش را فقط برای کلمات تازه برابر یک بگذاریم و افزایش رخدادهای بعدی را فراموش کنیم. ورودی خالی هم بهسادگی یک دیکشنری خالی میسازد.
فعالیت شما
مثال را بخوان و توضیح بده چرا یک جدول فراوانی از جستوجوی دوباره برای هر کلمه جلوگیری میکند؛ ورودی رشتههاست و هر کلید تعداد رخدادهای همان رشته را نگه میدارد.