راههای مختلف برای ساخت دیکشنری با استفاده از لیست
میتوان گفت که دیکشنریها یکی از مهمترین ساختارهای دادهای در پایتون هستند که به ذخیرهسازی و دسترسی سریع به اطلاعات کمک میکنند.
#dict | #list | #بدانیم | LearnPython
چگونه یک دیکشنری را در پایتون به سرعت وارونه کنیم؟ (جابجایی کلیدها و مقادیر) 🔄
✨ روش سریع با Dictionary Comprehension
original_dict = {"a": 1, "b": 2, "c": 3}
# وارونه کردن دیکشنری (مقادیر → کلید، کلیدها → مقدار)
reversed_dict = {value: key for key, value in original_dict.items()}
print(reversed_dict) # {1: 'a', 2: 'b', 3: 'c'}
⚠️ نکته مهم:
- این روش فقط زمانی کار میکند که مقادیر دیکشنری منحصربهفرد باشند (در غیر این صورت، مقادیر تکراری بازنویسی میشوند!).
- اگر مقادیر تکراری دارید، از روش های دیگر مانند defaultdict استفاده کنید.
🎯 روش defaultdict (مناسب برای مقادیر تکراری):
from collections import defaultdict
original_dict = {"a": 1, "b": 2, "c": 2, "d": 3}
reversed_dict = defaultdict(list)
for key, value in original_dict.items():
reversed_dict[value].append(key) # ذخیره لیستی از کلیدها برای مقادیر تکراری
print(dict(reversed_dict)) # {1: ['a'], 2: ['b', 'c'], 3: ['d']}
#dict | @learnpythonicy | #بدانیم
✔️ 10 Python Dictionary Tricks You Should Know! 🐍✨
1️⃣ ساخت دیکشنری با مقدار پیشفرض
from collections import defaultdict
d = defaultdict(int)
2️⃣ ادغام دو دیکشنری (Python 3.9+)
merged = dict1 | dict2
3️⃣ برعکس کردن key و value
reversed_dict = {v: k for k, v in my_dict.items()}
4️⃣ گرفتن مقدار با مقدار پیشفرض امن
value = my_dict.get("key", 0)
5️⃣ مرتبسازی دیکشنری بر اساس value
sorted_dict = dict(sorted(my_dict.items(), key=lambda x: x[1]))
6️⃣ حذف آیتم و گرفتن مقدار همزمان
value = my_dict.pop("key")
7️⃣ ساخت دیکشنری از دو لیست
result = dict(zip(keys, values))
8️⃣ بررسی وجود چند key بهصورت همزمان
if {"a", "b"} <= my_dict.keys():
print("Exists")
9️⃣ دیکشنری کامپرهنشن
squares = {x: x**2 for x in range(5)}
🔟 شمارش تکرار آیتمها
from collections import Counter
count = Counter(["a", "b", "a", "c"])
> ⚠️ دیکشنریها خیلی قدرتمندن؛ ولی خوانایی کد رو فدای کوتاهنویسی نکن!
#dict | #PythonTricks | @LearnPythonicy
کدومش بیشتر به کارت خورد؟
https://daigo.ir/secret/62000079358
✔️ حذف None و مقادیر تکراری با حفظ ترتیب در پایتون
در بسیاری از سناریوهای واقعی (دیتاپروسسینگ، لاگها، ورودی کاربر)،
علاوه بر حذف مقادیر تکراری و None، حفظ ترتیب عناصر هم اهمیت دارد.
در این حالت استفاده از set مناسب نیست، چون ترتیب را از بین میبرد.
راهحل تمیز و پایتونیک، استفاده از dict.fromkeys است:
data = [1, 2, None, 3, 2, None, 4, 1]
clean_data = list(dict.fromkeys(x for x in data if x is not None))
print(clean_data)
📌 خروجی:
[1, 2, 3, 4]
🔍 مزایا
. ترتیب لیست حفظ میشود
. بدون حلقهی دستی
. مناسب پیشپردازش دیتا
⚠️ نکته:
این روش از پایتون 3.7 به بعد کاملاً قابل اعتماد است (ترتیب دیکشنری حفظ میشود).
#fromkeys | #dict | #list | #none | @LearnPythonIcy