🧺 ساختمان داده‌ها

لیست: ساختن، تغییر دادن، append

۴ گام

دنباله‌ای که می‌شود عوضش کرد

تاپل تغییرناپذیر بود؛ لیست همان است با یک تفاوت بزرگ: می‌توانی عوضش کنی:

grades = [18, 14, 20, 10]
grades[2] = 19          # تغییر یک خانه (اندیس از صفر)
grades.append(16)       # افزودن به انتها
print(grades)           # [18, 14, 19, 10, 16]
print(len(grades))      # 5
  • grades[2] = 19 لیست را در جای خودش عوض می‌کند؛ لیست جدیدی ساخته نمی‌شود. به این «جهش» (mutation) می‌گویند.
  • append(x) یک عنصر به انتها اضافه می‌کند. اگر به آن یک لیست بدهی، کل آن لیست می‌شود یک خانه؛ برای چسباندن عنصرها یکی‌یکی، از extend یا + استفاده کن.
  • اندیسِ ناموجود (grades[9]) خطای IndexError می‌دهد؛ برای همین خانهٔ تازه را با append می‌سازیم، نه با اندیس‌دهی.

الگوی پیمایش هم همان جمع‌زدنِ همیشگی است:

total = 0
for g in grades:
    total = total + g
print(total / len(grades))

چرا append و نه grades[4] = 16؟ چون آن خانه هنوز وجود ندارد. درس کامل لیست مثال لیستِ لیست‌ها و لیستی از تاپل‌ها را هم دارد.

  1. ۱گام ۱

    یک لیست به اسم grades بساز که چهار نمره را نگه دارد: grades = [18, 14, 20, 10] و بعد طولش را با len چاپ کن.

    لیست با کروشه نوشته می‌شود و عنصرهایش با ویرگول جدا می‌شوند.

  2. ۲گام ۲

    برخلاف تاپل، لیست تغییرپذیر است. نمرهٔ سوم (خانهٔ اندیس ۲) را به 19 تغییر بده: grades[2] = 19 و بعد کل لیست را چاپ کن.

    خروجی باید [18, 14, 19, 10] باشد. دقت کن لیستِ همان‌جا عوض می‌شود، لیست جدید ساخته نمی‌شود.

  3. ۳گام ۳

    یک نمرهٔ جدید (16) به انتهای لیست اضافه کن: با متد append و بعد دوباره لیست را چاپ کن.

    خروجی باید [18, 14, 19, 10, 16] باشد.

  4. ۴گام ۴

    حالا میانگین نمره‌ها را حساب کن: با حلقهٔ for روی لیست بگرد و جمعش را در total بریز (الگوی جمع‌زدن)، و در آخر total / len(grades) را چاپ کن.

    خروجی باید 15.4 باشد.

در حال آماده‌سازی ویرایشگر…