تفاوت لیست، تاپل و دیکشنری در پایتون و چه زمانی از کدام استفاده کنیم

یکی از سؤالهایی که تقریباً هر تازهکار پایتون با آن روبهرو میشود این است: «چرا هم لیست داریم، هم تاپل، هم دیکشنری؟ مگر همه یک کار را انجام نمیدهند؟» جواب کوتاه این است: نه، هرکدام برای یک نوع مسئله ساخته شدهاند.
لیست (List): وقتی ترتیب و تغییرپذیری مهم است
لیست مجموعهای مرتب از عناصر است که میتوانید آن را تغییر دهید — عنصر اضافه کنید، حذف کنید یا مقدار یک عنصر را عوض کنید.
fruits = ["سیب", "موز", "پرتقال"]
fruits.append("انگور")
fruits[0] = "گلابی"
از لیست زمانی استفاده کنید که:
- ترتیب عناصر برایتان مهم است.
- قرار است در طول برنامه، عناصر اضافه یا حذف شوند.
- نیاز به پیمایش (loop) روی مجموعهای از دادههای مشابه دارید.
تاپل (Tuple): وقتی داده نباید تغییر کند
تاپل شبیه لیست است، با یک تفاوت اساسی: بعد از ساختهشدن، غیرقابلتغییر (immutable) است.
coordinates = (35.6892, 51.3890)
چرا از یک ساختار «غیرقابلتغییر» استفاده کنیم؟ چون گاهی همین ویژگی، مزیت است:
- تضمین میکند دادهای که نباید دستکاری شود، در جایی از کد بهاشتباه تغییر نکند.
- برای دادههای ثابتی مثل مختصات جغرافیایی، رنگ RGB یا تاریخ ثابت مناسبتر است.
- کمی سریعتر و سبکتر از لیست است.
دیکشنری (Dictionary): وقتی به کلید-مقدار نیاز دارید
دیکشنری داده را بهصورت جفتهای کلید-مقدار نگه میدارد، نه بر اساس ترتیب عددی.
customer = {
"name": "علی محمدی",
"age": 34,
"city": "تهران"
}
print(customer["name"])
از دیکشنری زمانی استفاده کنید که:
- میخواهید داده را با یک نام مشخص (نه شماره ایندکس) پیدا کنید.
- ساختار داده شما شبیه یک رکورد با چند فیلد مشخص است (مثل اطلاعات یک مشتری).
- سرعت جستوجو بر اساس کلید برایتان مهم است (دیکشنری در این کار بسیار سریعتر از لیست است).
جدول مقایسه سریع
| ویژگی | لیست | تاپل | دیکشنری |
|---|---|---|---|
| قابل تغییر؟ | بله | خیر | بله |
| دسترسی با | ایندکس عددی | ایندکس عددی | کلید |
| کاربرد اصلی | مجموعهای قابلتغییر | دادهی ثابت | دادهی کلید-مقدار |
یک نکته عملی
در پروژههای واقعی این سه ساختار معمولاً با هم ترکیب میشوند؛ مثلاً یک لیست از دیکشنریها برای نگهداری چند رکورد مشتری، یا یک دیکشنری که مقدارش یک تاپل ثابت است. یادگیری اینکه «کِی از کدام استفاده کنم» مهمتر از حفظکردن نحو (syntax) هرکدام است — و این مهارت فقط با تمرین در پروژههای واقعی بهدست میآید.


