پایتونمقدماتی۶ دقیقه مطالعهPython 3.12+

لیست‌ها

در این درس لیست می‌سازید، با اندیس به عضوها دسترسی پیدا می‌کنید، عضو اضافه و حذف می‌کنید و با حلقه for و توابع آماده روی لیست کار می‌کنید.

آنچه در این درس می‌آموزید

  • لیست بسازید و با اندیس مثبت و منفی به عضوهای آن دسترسی پیدا کنید
  • عضو اضافه و حذف کنید و مقدار عضوها را به‌روز کنید
  • لیست را با حلقه for پیمایش کنید و از توابع آماده مثل sum و sorted استفاده کنید
نویسنده: تیم داکنامه · بازبینی: ۲۰۲۶-۱۰-۳۰
فهرست مطالب

تا اینجا هر متغیری که می‌ساختید فقط یک مقدار داشت: یک عدد، یک رشته، یک درست/غلط. اما برنامه‌های واقعی با گروهی از داده‌ها سروکار دارند: نمره‌های یک کلاس، کالاهای یک سبد خرید، کارهای یک برنامهٔ روزانه. لیست (List) اصلی‌ترین ساختار دادهٔ پایتون برای نگه‌داشتن چند مقدار کنار هم است؛ ظرفی مرتب که می‌توانید عضو به آن اضافه کنید، از آن حذف کنید و در آن جست‌وجو کنید.

در این درس لیست می‌سازید، با اندیس به عضوها دسترسی پیدا می‌کنید، لیست را تغییر می‌دهید و با حلقهٔ for روی آن پیمایش می‌کنید. از این پس ستون فقرات بیشتر برنامه‌هایتان همین ساختار است.

ساخت لیست و دسترسی به عضوها

لیست با کروشه ساخته می‌شود و عضوها با ویرگول از هم جدا می‌شوند. هر عضو یک جایگاه شماره‌دار به نام اندیس (Index) دارد که از صفر شروع می‌شود:

scores.py
scores = [18, 15, 20, 12]
print(scores[0])
print(scores[-1])
print(len(scores))
خروجی کد

18 12 4

عبارت scores[0] اولین عضو را می‌دهد. اندیس منفی از انتهای لیست می‌شمارد؛ پس scores[-1] آخرین عضو است. تابع len() هم تعداد عضوهای هر لیستی را برمی‌گرداند. دقت کنید آخرین اندیس معتبر «طول منهای یک» است، نه خودِ طول؛ این تفاوت منبع خطای رایج است که کمی بعد می‌بینید.

تغییر لیست؛ افزودن، حذف و جایگزینی

لیست تغییرپذیر (Mutable) است؛ یعنی پس از ساخت هم می‌توانید محتوایش را عوض کنید:

tasks.py
tasks = ["shopping", "study"]
tasks.append("sport")
tasks[0] = "buy bread"
tasks.remove("study")
print(tasks)
خروجی کد

['buy bread', 'sport']

سه کار در این برنامه انجام شد:

  1. append عضو «ورزش» را به انتهای لیست اضافه کرد.
  2. تخصیص tasks[0] = ... عضو اندیس صفر را با «خرید نان» جایگزین کرد.
  3. remove نخستین عضوی که مقدارش برابر آرگومان بود را پیدا و حذف کرد.

پایتون لیست را با کروشه و هر رشته داخل گیومه نشان می‌دهد؛ همین شکلی است که چاپ می‌شود. آزمون «آیا این مقدار در لیست هست؟» هم با عملگر in انجام می‌شود و جواب درست/غلط می‌دهد:

check.py
tasks = ["shopping", "study"]
print("study" in tasks)
print("sport" in tasks)
خروجی کد

True False

:::

پیمایش لیست با حلقه for

برای کار کردن با همهٔ عضوها لازم نیست اندیس را دستی زیاد کنید؛ حلقه for هر عضو را به ترتیب در یک متغیر می‌گذارد:

sum_scores.py
scores = [18, 15, 20]
total = 0
for s in scores:
    total += s
print(total)
خروجی کد

53

حلقه سه بار می‌چرخد و در هر دور مقدار بعدی لیست را در s می‌گذارد؛ جمع‌زننده total با += که در درس عملگرها دیدید به‌روز می‌شود. ترکیب «لیست + حلقه + تابع» همان الگویی است که در درس توابع برای پردازش هر مجموعه داده‌ای به کار می‌برید.

توابع آماده روی لیست

پایتون برای کارهای رایج روی لیست اعداد توابع آماده دارد:

stats.py
numbers = [7, 2, 9, 4]
print(max(numbers))
print(min(numbers))
print(sum(numbers))
print(sorted(numbers))
خروجی کد

9 2 22 [2, 4, 7, 9]

max و min بزرگ‌ترین و کوچک‌ترین عضو را می‌دهند، sum همه را جمع می‌زند و sorted یک لیست جدیدِ مرتب‌شده برمی‌گرداند؛ لیست اصلی دست‌نخورده می‌ماند.

تمرین‌ها

تمرین

تمرین ۱ — شمارش نمره‌های قبولی

تابعی به نام count_pass بنویسید که لیستی از نمره‌ها بگیرد و تعداد نمره‌های بزرگ‌تر یا مساوی ۱۰ را برگرداند؛ سپس آن را روی لیست [12, 8, 17, 5, 10] فراخوانی و نتیجه را چاپ کنید.

python
# Write your code here
نمایش راه‌حل
python
def count_pass(scores):
    count = 0
    for s in scores:
        if s >= 10:
            count += 1
    return count

print(count_pass([12, 8, 17, 5, 10]))
خروجی کد

3

::: :::

خلاصه

  • لیست با کروشه ساخته می‌شود؛ مرتب است و اندیس‌هایش از صفر شروع می‌شود.
  • اندیس منفی از انتها می‌شمارد و len() تعداد عضوها را می‌دهد.
  • لیست تغییرپذیر است: append اضافه می‌کند، remove حذف می‌کند و تخصیص با اندیس جایگزین می‌کند.
  • عملگر in آزمون عضویت است و حلقه for لیست را عضوبه‌عضو پیمایش می‌کند.
  • max و min و sum و sorted توابع آمادهٔ پرکاربرد روی لیست‌های عددی‌اند.

لیست محتوایش را هر لحظه می‌پذیرد و عوض می‌کند؛ اما گاهی داده‌ای دارید که نباید تغییر کند. در درس بعدی سراغ تاپل می‌رویم؛ نسخهٔ تغییرناپذیر دنباله‌ها.

منابع و ارجاع‌ها

درس‌های مرتبط