TGViewer
PyCoders (پایتون) PyCoders (پایتون) @python_rd · 4.11K subscribers
Post #2203 519
🔆 دیکشنری با متد setdefault

🔹شاید برات پیش اومده باشه که بخوای توی یه دیکشنری داده‌ها رو گروه‌بندی کنی و هی با خطای KeyError مواجه نشی. خیلیا اول چک می‌کنن کلید هست یا نه و بعد لیست جدید می‌سازن، ولی با setdefault کل این ماجرا توی یه خط خلاصه می‌شه. این متد اگه کلید وجود نداشته باشه با مقداری که بهش دادی می‌سازدش و همون لحظه مرجعش رو برمی‌گردونه تا بتونی روش عملیات بزنی.

words = ["python", "django", "pandas", "docker", "fastapi"]
grouped = {}

# دسته‌بندی کلمات بر اساس حرف اول
for word in words:
first_letter = word[0]
grouped.setdefault(first_letter, []).append(word)

print(grouped)
# خروجی: {'p': ['python', 'pandas'], 'd': ['django', 'docker'], 'f': ['fastapi']}

🔹به چه دردی میخوره؟
این متد نسبت به نوشتن if و else های دستی هم خوانایی کد رو بالاتر می‌بره و هم توی پروژه‌های واقعی مدیریت دیکشنری‌های تو در تو رو خیلی راحت‌تر می‌کنه.

🐍 @python_rd
More from @python_rd
  1. Oct 13, 2026کوییز پایتون 🔆 خروجی اجرای کد زیر چیست؟ t = (1, 2, [3, 4]) try: t[2] += [5] except TypeEr…
  2. Oct 13, 2026🔆 راز مکانیزم پیاده‌سازی و تغییر جهت NaN در الگوریتم مرتب‌سازی پایتون (Timsort) 🔹 باگ ری…
  3. Oct 13, 2026🔆 حذف تاریخی GIL از پایتون (Free-threaded Python) 🔹 یک رویداد تاریخی: حذف قفل مفسر (GIL)…
  4. Oct 11, 2026🔆 مدیریت تمیز منابع با Context Managerهای سفارشی (contextlib) 🔹 ساخت Context Managerها م…
  5. Oct 10, 2026🔆 چرا برای داده‌های حجیم نباید از return استفاده کنی؟ 🔹 وقتی یک تابع لیست بزرگی از داده‌…
  6. Oct 10, 2026🔆 خروجی این تکه کد چیه؟ def add_item(item, lst=[]): lst.append(item) return lst print(add…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →