کار کردن با دیکشنری
دیکشنری در پایتون مجموعهای از جفتهای کلید-مقدار است. هر کلید با یک مقدار مرتبط است و به کمک آن میتوانید به این مقدارِ مرتبط دسترسی پیدا کنید. مقدار یک کلید میتواند عدد، رشته، لیست یا حتّی یک دیکشنری دیگر باشد.
در پایتون یک دیکشنری با دنبالهای از کلید-مقدارها، داخل آکُلاد {} قرار میگیرد:
|
|
یک جفت کلید-مقدار مجموعهای از مقدارهای به هم مرتبط است. پایتون با ارائهی هر کلید، مقداری را که با آن در ارتباط است برمیگرداند. هر کلید با یک دونقطه به مقدار خود وصل میشود و جفتهای کلید-مقدارِ مجزّا با کاما از یکدیگر جدا میشوند.
دسترسی به مقادیر یک دیکشنری
برای گرفتن مقدار مرتبط با یک کلید، نام دیکشنری را بنویسید و سپس کلید را داخل یک جفت کروشه جلوی آن قرار دهید:
این کد مقدار مربوط به کلید ‘color’ را از دیکشنری alien_0 برمیگرداند:
|
|
شما میتوانید تعداد نامحدودی جفتِ کلید-مقدار در یک دیکشنری بگنجانید. اگر بازیکنی این موجود بیگانه را بکشد، امتیازِ کسبشدهی او با کدی به صورت زیر به دست میآید:
کد 1 میتواند بلافاصله بعد از تعریفِ دیکشنری، مقدار مرتبط با کلید ‘points’ را از آن بیرون بکشد. این مقدار در ادامه به متغیّر new_points منسوب میشود. خط 2 دربارهی تعداد امتیازی که بازیکن دریافت کرده عبارتی چاپ میکند:
|
|
افزودن جفتهای کلید-مقدار جدید
دیکشنریها ساختارهایی پویا هستند و همیشه میتوان جفتهای کلید-مقدارِ جدید را به آنها افزود. برای افزودن یک جفت کلید-مقدار، نام دیکشنری را همراه با کلید جدید، که در کروشه قرار گرفته، در کنارِ مقدار جدید مینویسید.
بیایید دو دانستهی جدید به دیکشنری alien_0 بیفزاییم: مختصّات x و y آن:
مطابق قبل از تعریف یک دیکشنری شروع میکنیم. سپس آن را چاپ میکنیم. در 1 یک جفت کلید-مقدار جدید به آن اضافه میکنیم: کلید ‘x_position’ و مقدار 0. در 2 همین کار را برای کلید ‘y_position’ تکرار میکنیم:
شروع کردن از یک دیکشنری خالی
گاهی سادهتر یا حتّی الزامی است که کار را از یک دیکشنری خالی شروع کرده و سپس موارد جدید را به آن اضافه کنیم:
نتیجه همان دیکشنریای است که در مثالهای قبلی به کار میبردیم:
|
|
معمولاً هنگام ذخیرهسازی دادههایی که کاربران ارائه میکنند یا نوشتن کدی که تعداد زیادی جفت کلید-مقدار را به طور خودکار تولید میکند، از دیکشنریهای خالی استفاده میکنیم.
تغییر دادن مقدارها در یک دیکشنری
برای تغییر دادن مقداری در یک دیکشنری، نام آن را به همراه کلید در داخل کروشه بنویسید و سپس مقدار جدیدی را بیاورید:
ابتدا دیکشنری alien_0 را تعریف میکنیم که تنها شامل رنگ آن است، سپس مقدار مرتبط با کلید ‘color’ را به ‘yellow’ تغییر میدهیم:
به عنوان یک مثال جذّابتر بیاید موقعیّت یک موجود بیگانه را که با سرعتهای مختلف حرکت میکند ردگیری کنیم:
|
|
در 1 یک زنجیرهی if-elif-else مشخّص میکند که موجود بیگانه چهقدر باید به سمت راست حرکت کند. پس از محاسبه شدن مقدارِ افزایشِ جابهجایی، آن را در 2 به مقدار x_position اضافه میکنیم:
حذف کردن جفتهای کلید-مقدار
زمانی که دیگر به اطّلاعاتِ ذخیرهشده در دیکشنری نیاز نداشتید میتوانید به کمک عبارت del، یک جفت کلید-مقدار را به کلّی حذف کنید:
خروجی نشان میدهد که کلید ‘points’ و مقدار آن، ۵، از دیکشنری حذف شده: