یکی دیگر از انواع دادههای مفید داخلی پایتون دیکشنری (dictionary) است. دیکشنریها گاهی در زبانهای دیگر به عنوان "حافظههای انجمنی" یا "آرایههای انجمنی" شناخته میشوند. برخلاف توالیها که با بازهای از اعداد اندیسگذاری میشوند، دیکشنریها با کلیدها اندیسگذاری میشوند که میتوانند هر نوع تغییرناپذیری باشند؛ رشتهها و اعداد همیشه میتوانند کلید باشند. تاپلها میتوانند به عنوان کلید استفاده شوند اگر فقط حاوی رشتهها، اعداد یا تاپلها باشند. نمیتوان از لیستها به عنوان کلید استفاده کرد.
بهتر است دیکشنری را به عنوان مجموعهای از جفتهای کلید: مقدار در نظر بگیرید، با این شرط که کلیدها (در یک دیکشنری) منحصربفرد باشند. یک جفت براکت یک دیکشنری خالی ایجاد میکند: {}.
عملیات اصلی روی دیکشنری ذخیره مقداری با کلیدی و استخراج مقدار با کلید داده شده است. همچنین میتوان یک جفت کلید:مقدار را با del حذف کرد.
استخراج مقدار برای کلیدی که وجود ندارد با d[key] KeyError ایجاد میکند. برای جلوگیری از این خطا از متد get() استفاده کنید.
انجام list(d) روی دیکشنری لیستی از تمام کلیدها برمیگرداند. برای بررسی وجود یک کلید خاص، از کلمه کلیدی in استفاده کنید.
>>> tel = {'jack': 4098, 'sape': 4139}
>>> tel['guido'] = 4127
>>> tel
{'jack': 4098, 'sape': 4139, 'guido': 4127}
>>> tel['jack']
4098
>>> tel['irv']
Traceback (most recent call last):
File "", line 1, in
KeyError: 'irv'
>>> print(tel.get('irv'))
None
>>> del tel['sape']
>>> tel['irv'] = 4127
>>> tel
{'jack': 4098, 'guido': 4127, 'irv': 4127}
>>> list(tel)
['jack', 'guido', 'irv']
>>> sorted(tel)
['guido', 'irv', 'jack']
>>> 'guido' in tel
True
>>> 'jack' not in tel
False
سازنده dict() دیکشنریها را مستقیماً از توالیهای جفتهای کلید-مقدار میسازد:
>>> dict([('sape', 4139), ('guido', 4127), ('jack', 4098)])
{'sape': 4139, 'guido': 4127, 'jack': 4098}
علاوه بر این، فهرستهای توصیفی دیکشنری (dict comprehensions) میتوانند برای ایجاد دیکشنریها از عبارات کلید و مقدار دلخواه استفاده شوند:
>>> {x: x**2 for x in (2, 4, 6)}
{2: 4, 4: 16, 6: 36}
وقتی کلیدها رشتههای ساده هستند، گاهی راحتتر است جفتها را با آرگومانهای کلیدی مشخص کنید:
>>> dict(sape=4139, guido=4127, jack=4098)
{'sape': 4139, 'guido': 4127, 'jack': 4098}این محتوا کاملا رایگان توسط تیم کدلپر ترجمه شده و در اختیار شما کاربران عزیز قرار گرفته است، هر گونه کپی برداری برای مقاصد غیر رایگان و بدون ذکر منبع، مورد پیگیری قانونی قرار میگیرد.
ترجمه شده از منبع: https://docs.python.org/3/tutorial