آشنایی با dictionary comprehensions در پایتون

August 2019

در پایتون dictionary comprehensionها روشی ساده و سریع برای ایجاد دیکشنری ها از دیکشنری ها دیگر است. در این تبدیل آیتم های دیکشنری اصلی میتوانند در دیکشنری جدید هم باشند

ساختار نگارش کلی به شکل زیر هستش:

{value:key for key, value in dict.items()}

البته اگر خواستید میتونید از شرط if در انتهای عبارت بالا استفاده کنید

در مثال پایین یک dictionay comprehension ساده داریم:

d = {i:i*i for i in range(1, 11)}

print(d)

در کد بالا ما یک حلقه زدیم داخل range و از عدد ۱ تا ۱۰ رو مقادیرش رو میگیریم. مقادیر رو به صورت مستقیم به عنوان کلید و هر عدد رو ضربدر خودش به عنوان مقدار در اون دیکشنری ذخیره کردیم

اگه مثال بالا رو طوری بخوایید تغییر بدین که فقط اعداد زوج رو ذخیره کنه میتونید از شرط if استفاده کنید:

d = {i:i*i for i in range(1, 11) if i%2==0}

print(d)

یک مثال پیچیده تر:

letters = ['a', 'b', 'c', 'd']
nums = [1, 2, 3, 4]

d = {n:l for (n, l) in zip(nums, letters)}

print(d)

در کد بالا دوتا لیست داریم که میخوایم از ترکیب این دوتا لیست یک دیکشنری داشته باشیم. به طوری که اعداد به عنوان کلید و حروف به عنوان مقدار ذخیره بشن. برای این کار از متد  zip استفاده کردیم. این متد به شما اجازه میده که دوتا دنباله رو بچسبونید به هم و بزارید داخل یک حلقه.
و داخل حلقه for دوتا نماینده داریم یکی برای اعداد و یکی برای حروف. و این دوتا نماینده رو به عنوان کلید و مقدار داخل دیکشنری استفاده کردیم

برای اطلاعات بیشتر ویدیو رو تماشا کنید