آموزش لیست در پایتون به زبان ساده

596
آموزش لیست در پایتون

وقتی تازه برنامه‌نویسی پایتون را شروع می‌کنید، مدیریت داده‌ها می‌تواند کمی شما را دچار سردرگمی کند. مثلا اینکه چطور می‌توانید مجموعه‌ای از اطلاعات مثل نمرات، اسامی یا وظایف را به‌صورت منظم ذخیره و بازیابی کنید، در نگاه اول کمی دشوار است؛ اما چاره چیست؟ راهکار شما استفاده از لیست در پایتون است.

این ابزار قدرتمند به شما کمک می‌کند داده‌ها را به‌سادگی بدون اینکه نگران پیچیدگی کار باشید مدیریت کنید. با مطالعه این مطلب از کوئرا بلاگ، نه‌تنها لیست‌ها در پایتون را به‌خوبی یاد می‌گیرید، بلکه با مثال‌های عملی می‌توانید پروژه‌های کوچک خود را هم بسازید. پس برای درک بهتر مفهوم List در پایتون تا آخر این مطلب با ما همراه باشید.

لیست در پایتون چیست؟

لیست در پایتون در اصل نوعی ساختار داده منعطف و قدرتمند است که به شما امکان می‌دهد مجموعه‌ای از داده‌ها را در یک مکان ذخیره کنید. برای مثال فرض بر این است که سبد خریدی دارید که می‌توانید انواع مختلفی از اقلام (مثل میوه، کتاب و غیره) را در آن قرار دهید. لیست دقیقاً مثل همان سبد است! می‌توانید هر نوع داده‌ای (اعداد، رشته‌ها، یا حتی لیست‌های دیگر) را در آن ذخیره کرده و بعداً آن‌ها را تغییر دهید، حذف یا اضافه کنید.

اما چرا لیست‌ها مهم‌اند؟

  • انعطاف‌پذیری: می‌توانید داده‌های مختلف را در یک لیست کنار هم نگه دارید.
  • کاربرد گسترده: از مدیریت داده‌های ساده گرفته تا پروژه‌های پیچیده مثل هوش مصنوعی، لیست‌ها کاربرد دارند.
  • سادگی: کار با لیست‌ها حتی برای مبتدیان هم راحت است.

تصور کنید در حال نوشتن یک برنامه برای مدیریت نمرات دانش‌آموزان هستید. به جای ذخیره هر نمره به‌صورت جداگانه، می‌توانید همه نمرات را در یک لیست نگه دارید و به‌راحتی میانگین آن‌ها را محاسبه کنید.

ایجاد و مدیریت لیست در پایتون

حالا که می‌دانیم لیست پایتون چیست، بیایید یاد بگیریم چگونه آن را ایجاد و با آن کار کنیم. اگر تازه با پایتون آشنا شده‌اید، پیشنهاد می‌کنیم ابتدا نصب پایتون را انجام دهید تا بتوانید مثال‌ها را خودتان هم امتحان کنید.

چگونه در پایتون لیست بسازیم؟

ایجاد لیست در پایتون بسیار ساده است. برای این هدف کافی است داده‌های خود را بین کروشه‌ها ([]) قرار دهید و آن‌ها را با کاما (,) از هم جدا کنید.

مثال:

fruits = ["سیب", "موز", "پرتقال"]
numbers = [1, 2, 3, 4, 5]
mixed = [1, "سلام", 3.14, True]

در مثال بالا:

  • fruits  لیستی از رشته‌هاست.
  • numbers لیستی از اعداد صحیح است.
  • mixed لیستی ترکیبی از انواع داده‌های مختلف است.

دسترسی به عناصر لیست در پایتون

هر عنصر در لیست اندیسی (index) دارد که از ۰ شروع می‌شود. برای دسترسی به یک عنصر، از اندیس آن استفاده می‌کنیم.

مثال:

fruits = ["سیب", "موز", "پرتقال"]
print(fruits[0])  # خروجی: سیب
print(fruits[2])  # خروجی: پرتقال

نکته: اگر بخواهید به عنصری از انتهای لیست دسترسی پیدا کنید، می‌توانید اندیس منفی به کار ببرید. مثلاً fruits[-1] به شما «پرتقال» را بازمی‌گرداند.

دسترسی به عناصر لیست در پایتون

تغییر عناصر لیست در Python

لیست‌ها قابل تغییر (mutable) هستند، یعنی می‌توانید محتوای آن‌ها را عوض کنید.

مثال:

fruits = ["سیب", "موز", "پرتقال"]
fruits[1] = "انگور"
print(fruits)  # خروجی: ['سیب', 'انگور', 'پرتقال']

افزودن عنصر به لیست

برای اضافه کردن عنصر جدید، می‌توانید از متدهای زیر استفاده کنید:

  • append()‎: عنصری به انتهای لیست اضافه می‌کند.
  • insert()‎: عنصری در اندیس مشخصی اضافه می‌کند.

مثال:

fruits = ["سیب", "موز"]
fruits.append("پرتقال")
print(fruits)  # خروجی: ['سیب', 'موز', 'پرتقال']
fruits.insert(1, "انگور")
print(fruits)  # خروجی: ['سیب', 'انگور', 'موز', 'پرتقال']

حذف عنصر از لیست در زبان پایتون

برای حذف عناصر لیست در زبان برنامه نویسی پایتون، چند روش وجود دارد:

  • remove()‎: اولین نمونه از یک مقدار مشخص را حذف می‌کند.
  • pop()‎: عنصر با اندیس مشخص را حذف و برمی‌گرداند. اگر اندیسی به این متد داده نشود، به‌طور پیش‌فرض آخرین عنصر حذف می‌شود.
  • del: یک عنصر یا بخشی از لیست را حذف می‌کند.

مثال:

fruits = ["سیب", "موز", "پرتقال"]
fruits.remove("موز")
print(fruits)  # خروجی: ['سیب', 'پرتقال']
fruits.pop(0)
print(fruits)  # خروجی: ['پرتقال']
del fruits[0]
print(fruits)  # خروجی: []

محاسب طول لیست در python

برای دانستن تعداد عناصر لیستی در زبان برنامه نویسی پایتون، از تابع len()‎ به صورت زیر کنید.

fruits = ["سیب", "موز", "پرتقال"]
print(len(fruits))  # خروجی: 3

مثالی عملی از دستکاری لیست در پایتون

فرض کنید می‌خواهید یک برنامه ساده برای مدیریت لیست خرید بنویسید. کد زیر یک نمونه عملی برای انجام این کار است:

shopping_list = ["شیر", "نان", "تخم‌مرغ"]
print("لیست خرید فعلی:", shopping_list)
# اضافه کردن یک مورد
shopping_list.append("میوه")
print("بعد از اضافه کردن میوه:", shopping_list)
# حذف یک مورد
shopping_list.remove("نان")
print("بعد از حذف نان:", shopping_list)

# نمایش تعداد موارد
print("تعداد موارد در لیست:", len(shopping_list))

تفسیر کد فوق به صورت تصویر زیر است:

مثالی از لیست در پایتون

عملیات پیشرفته با لیست‌های پایتون

تا اینجا یاد گرفتیم که چگونه لیست بسازیم و عناصر آن را مدیریت کنیم. حالا وقت آن است که با چند ابزار پیشرفته‌تر آشنا شویم که به شما کمک می‌کنند کارهای جالب‌تری با لیست‌ها انجام دهید. این بخش برای افرادی طراحی شده که می‌خواهند فراتر از مفاهیم پایه پیش بروند و توانایی‌های لیست در زبان برنامه نویسی پایتون را بهتر درک کنند.

مرتب‌سازی لیست‌ها

یکی از کارهای رایج با لیست‌ها، مرتب کردن آن‌هاست. فرض کنید لیستی از نمرات دارید و می‌خواهید آن‌ها را از کم به زیاد مرتب کنید. پایتون دو روش اصلی برای این کار دارد: متد sort()‎ و تابع sorted()‎.

  • sort()‎: لیست را مستقیماً مرتب می‌کند و تغییر در همان لیست اصلی اعمال می‌شود.
  • sorted()‎: یک لیست جدید مرتب‌شده ایجاد می‌کند و لیست اصلی بدون تغییر می‌ماند.

مثال:

scores = [85, 92, 78, 95]
scores.sort()
print(scores)  # خروجی: [78, 85, 92, 95]

names = ["علی", "مریم", "حسن"]
new_names = sorted(names)
print(new_names)  # خروجی: ['حسن', 'علی', 'مریم']
print(names)  # خروجی: ['علی', 'مریم', 'حسن']
مرتب سازی لیست در پایتون

نکته: می‌توانید لیست را به‌صورت نزولی با اضافه کردن reverse=Trueمرتب کنید. مانند مثال زیر:

scores = [85, 92, 78, 95]
scores.sort(reverse=True)
print(scores)  # خروجی: [95, 92, 85, 78]

برش لیست (Slicing)

برش زدن به شما امکان می‌دهد بخشی از لیست را جدا کنید. تکه جدا شده همچنان لیست باقی خواهد ماند. سینتکس برش به این صورت است:

: list[start:end:step].
  • start: اندیس شروع (شامل این اندیس).
  • end: اندیس پایان (تا قبل از این اندیس).
  • step: فاصله بین عناصر (اختیاری).

مثال:

numbers = [0, 1, 2, 3, 4, 5]
print(numbers[1:4])  # خروجی: [1, 2, 3]
print(numbers[:3])  # خروجی: [0, 1, 2]
print(numbers[::2])  # خروجی: [0, 2, 4]

مثال واقعی: فرض کنید لیستی از وظایف روزانه دارید و فقط می‌خواهید سه وظیفه اول را ببینید:

tasks = ["ورزش", "مطالعه", "کار", "خرید", "خواب"]
print(tasks[:3])  # خروجی: ['ورزش', 'مطالعه', 'کار']

کپی کردن لیست‌ها در زبان پایتون

اگر بخواهید یک کپی از لیست بسازید، نمی‌توانید فقط از = استفاده کنید، چون این کار فقط یک ارجاع به لیست اصلی ایجاد می‌کند. برای کپی واقعی، از متد copy()‎ یا تابع list()‎ استفاده کنید.

مثال:

original = [1, 2, 3]

copy_list = original.copy()

copy_list[0] = 10

print(copy_list)  # خروجی: [10, 2, 3]

print(original)  # خروجی: [1, 2, 3]

ادغام لیست‌ در پایتون

گاهی نیاز دارید چند لیست را با هم ترکیب کنید. می‌توانید با استفاده از عملگر + یا متد extend()‎ این کار را انجام دهید.

مثال:

list1 = [1, 2, 3]

list2 = [4, 5, 6]

combined = list1 + list2

print(combined)  # خروجی: [1, 2, 3, 4, 5, 6]

list1.extend(list2)

print(list1)  # خروجی: [1, 2, 3, 4, 5, 6]

عملیات بالا را در تصویر زیر مشاهده می‌کنید:

ادغام لیست در پایتون

کار با حلقه‌ها و لیست‌ها در پایتون

حلقه‌ها به شما امکان می‌دهند به‌صورت خودکار روی عناصر لیست کار کنید. این قابلیت مثل داشتن دستیاری است که تک‌تک عناصر لیست را بررسی می‌کند! دو نوع حلقه اصلی برای کار با لیست‌ها وجود دارد: for و while.

حلقه for برای دستکاری لیست ها در پایتون

حلقه for برای پیمایش تمام عناصر لیست به صورت زیر مورد استفاده قرار می‌گرید:

fruits = ["سیب", "موز", "پرتقال"]

for fruit in fruits:

    print(f"من {fruit} دوست دارم!")

خروجی:

من سیب دوست دارم!

من موز دوست دارم!

من پرتقال دوست دارم!

مثال عملی: فرض کنید می‌خواهید مجموع اعداد یک لیست را محاسبه کنید:

numbers = [10, 20, 30, 40]

total = 0

for num in numbers:

    total += num

print(f"مجموع: {total}")  # خروجی: مجموع: 100

کار با لیست های پایتون با حلقه while

حلقه while وقتی مفید است که بخواهید تا زمانی که شرط خاصی برقرار است، روی لیست عملیاتی انجام دهید.

مثال:

numbers = [1, 2, 3, 4, 5]

i = 0

while i < len(numbers):

    print(numbers[i])

    i += 1

خروجی:

1

2

3

4

5

استفاده از enumerate

اگر بخواهید همزمان به اندیس و مقدار عنصر دسترسی داشته باشید، از enumerate()‎ استفاده کنید.

مثال:

fruits = ["سیب", "موز", "پرتقال"]

for index, fruit in enumerate(fruits):

    print(f"میوه شماره {index + 1}: {fruit}")

خروجی:

میوه شماره 1: سیب

میوه شماره 2: موز

میوه شماره 3: پرتقال

لیست‌های تو در تو و حلقه‌ها

لیست‌ ها در پایتون می‌توانند شامل لیست‌های دیگر باشند. برای کار با آن‌ها، از حلقه‌های تو در تو استفاده می‌کنیم.

مثال:

matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

for row in matrix:

    for num in row:

        print(num, end=" ")

    print()  # خط جدید

خروجی:

1 2 3

4 5 6

7 8 9

مثال واقعی: فرض کنید یک برنامه برای نمایش برنامه هفتگی دارید:

schedule = [["ریاضی", "فیزیک"], ["برنامه‌نویسی", "شیمی"], ["ورزش", "ادبیات"]]

for day, classes in enumerate(schedule, 1):

    print(f"روز {day}:")

    for class_name in classes:

        print(f" - {class_name}")

خروجی:

روز 1:

 - ریاضی

 - فیزیک

روز 2:

 - برنامه‌نویسی

 - شیمی

روز 3:

 - ورزش

 - ادبیات

پروژه‌های عملی با لیست‌ها

تا اینجا با مفاهیم پایه و پیشرفته لیست در پایتون آشنا شدیم. حالا وقت آن است که دست به کار شویم و چند پروژه عملی ساده بسازیم. این پروژه‌ها به شما کمک می‌کنند تا آموخته‌های خود را در دنیای واقعی به کار ببرید. هر پروژه با توضیحات گام‌به‌گام و کد کامل ارائه شده تا حتی اگر تازه‌کار هستید، بتوانید به راحتی آن را درک کنید.

پروژه ۱: مدیریت لیست کارهای روزانه با لیست در پایتون

این پروژه یک برنامه ساده برای مدیریت وظایف روزانه است. کاربر می‌تواند وظایف را اضافه، حذف یا مشاهده کند.

هدف: یادگیری استفاده از لیست برای ذخیره داده‌ها، حلقه‌ها برای نمایش و متدهای لیست برای مدیریت.

کد برنامه:

tasks = []

while True:

    print("\n1. افزودن وظیفه")

    print("2. حذف وظیفه")

    print("3. نمایش وظایف")

    print("4. خروج")

    choice = input("انتخاب شما (1-4): ")

    if choice == "1":

        task = input("وظیفه جدید را وارد کنید: ")

        tasks.append(task)

        print(f"وظیفه '{task}' اضافه شد.")

    elif choice == "2":

        if tasks:

            print("وظایف فعلی:", tasks)

            task = input("وظیفه‌ای که می‌خواهید حذف کنید: ")

            if task in tasks:

                tasks.remove(task)

                print(f"وظیفه '{task}' حذف شد.")

            else:

                print("وظیفه یافت نشد!")

        else:

            print("لیست وظایف خالی است!")

    elif choice == "3":

        if tasks:

            print("وظایف شما:")

            for index, task in enumerate(tasks, 1):

                print(f"{index}. {task}")

        else:

            print("هیچ وظیفه‌ای وجود ندارد!")

    elif choice == "4":

        print("خداحافظ!")

        break

    else:

        print("انتخاب نامعتبر! دوباره امتحان کنید.")

توضیح:

  • لیست tasks برای ذخیره وظایف استفاده می‌شود.
  • حلقه while یک منوی ساده ایجاد می‌کند.
  • از append()‎ برای افزودن، remove()‎ برای حذف و enumerate()‎ برای نمایش شماره‌گذاری‌شده وظایف استفاده شده.
  • این پروژه به شما نشان می‌دهد که چگونه لیست‌ها می‌توانند در یک برنامه تعاملی به کار روند.

مثال خروجی:

پروژه عملی برای کار با لیست در پایتون

پروژه ۲: محاسبه میانگین نمرات با لیست در زبان برنامه نویسی پایتون

این پروژه یک برنامه برای ذخیره نمرات و محاسبه میانگین آن‌هاست. این پروژه برای دانش‌آموزان یا معلمان بسیار کاربردی است.

  • هدف: تمرین کار با لیست‌ها، حلقه‌ها و عملیات ریاضی.

کد:

grades = []

while True:

    print("\n1. افزودن نمره")

    print("2. محاسبه میانگین")

    print("3. نمایش نمرات")

    print("4. خروج")

    choice = input("انتخاب شما (1-4): ")

    if choice == "1":

        try:

            grade = float(input("نمره را وارد کنید (0-100): "))

            if 0 <= grade <= 100:

                grades.append(grade)

                print(f"نمره {grade} اضافه شد.")

            else:

                print("نمره باید بین 0 و 100 باشد!")

        except ValueError:

            print("لطفاً یک عدد معتبر وارد کنید!")

    elif choice == "2":

        if grades:

            average = sum(grades) / len(grades)

            print(f"میانگین نمرات: {average:.2f}")

        else:

            print("هیچ نمره‌ای ثبت نشده!")

    elif choice == "3":

        if grades:

            print("نمرات ثبت‌شده:")

            for index, grade in enumerate(grades, 1):

                print(f"نمره {index}: {grade}")

        else:

            print("هیچ نمره‌ای وجود ندارد!")

    elif choice == "4":

        print("خداحافظ!")

        break

    else:

        print("انتخاب نامعتبر! دوباره امتحان کنید.")

توضیح:

  • لیست grades برای ذخیره نمرات استفاده می‌شود.
  • از try-except برای جلوگیری از خطای ورودی نامعتبر (مثل حروف به جای عدد) استفاده شده.
  • تابع sum()‎ و len()‎ برای محاسبه میانگین به کار رفته‌اند.
  • این پروژه نشان می‌دهد که چگونه می‌توانید با لیست‌ها عملیات ریاضی انجام دهید.

مثال خروجی:

نمونه پروژه list در پایتون

پروژه ۳: فیلتر کردن لیست

این پروژه یک برنامه برای فیلتر کردن عناصر لیست در پایتون بر اساس شرط خاص است. مثلاً می‌خواهیم فقط اعداد زوج را از یک لیست جدا کنیم.

  • هدف: یادگیری کار با شرط‌ها و ایجاد لیست جدید از لیست موجود.

کد:

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

even_numbers = []

for num in numbers:

    if num % 2 == 0:

        even_numbers.append(num)

print("اعداد زوج:", even_numbers)

خروجی:

اعداد زوج: [2, 4, 6, 8, 10]

نسخه پیشرفته‌تر (با ورودی کاربر):

numbers = []

while True:

    try:

        num = input("یک عدد وارد کنید (برای اتمام enter بزنید): ")

        if num == "":

            break

        numbers.append(int(num))

    except ValueError:

        print("لطفاً یک عدد معتبر وارد کنید!")

even_numbers = [num for num in numbers if num % 2 == 0]

print("اعداد زوج:", even_numbers)

توضیح:

  • در نسخه ساده، از حلقه for و شرط if برای فیلتر کردن استفاده شده.
  • در نسخه پیشرفته، کاربر اعداد را وارد می‌کند و از List Comprehension (یک روش مختصر برای ایجاد لیست) استفاده شده.
  • این پروژه به شما نشان می‌دهد که چگونه می‌توانید داده‌ها را بر اساس نیاز فیلتر کنید.

مثال واقعی: فرض کنید در حال نوشتن برنامه‌ای برای یک فروشگاه هستید که فقط محصولات با قیمت زیر ۱۰۰ هزار تومان را نمایش دهد. این تکنیک دقیقاً همان چیزی است که نیاز دارید!

کلام نهایی

لیست در پایتون یکی از قدرتمندترین ابزارهایی است که هر برنامه‌نویس مبتدی باید آن را یاد بگیرد. از ذخیره داده‌های ساده گرفته تا ساخت برنامه‌های پیچیده، لیست‌ها همیشه مورد نیاز هستند. در این مطلب آموزشی، با مفاهیم پایه مثل ایجاد و مدیریت لیست، عملیات پیشرفته مثل مرتب‌سازی و برش، کار با حلقه‌ها و پروژه‌های عملی آشنا شدید. حالا که این ابزار را می‌شناسید، پیشنهاد می‌کنیم یکی از پروژه‌های بالا را امتحان کرده یا ایده خودتان را پیاده‌سازی کنید. هرچه بیشتر تمرین کنید، اعتمادبه‌نفس بیشتری در برنامه‌نویسی پیدا خواهید کرد.

مطالب فوق در رابطه با کار با لیست در زبان برنامه نویسی پایتون، فقط بخش کوچکی از این مبحث بود. اگر می‌خواهد که کار با لیست و سایر انواع داده پایتون را به صورت کاربردی و عملی یاد بگیرید، پیشنهاد ما سرمایه‌گذاری روی آموزش پایتون است. با استفاده از دوره‌های آموزش پایتون کوئرا این مباحث را به صورت کامل از صفر تا صد یاد خواهید گرفت.

همچنین در کوئرا انواع دوره آموزش برنامه نویسی برای زبان‌های مختلف دیگر نیز موجود است. با استفاده از این دوره‌های آموزشی می‌توانید زبان مورد علاقه و مد نظر خود را از سطح مبتدی تا سطح پیشرفته یاد بگیرید و با آن وارد بازار کار شوید.

سؤالات متداول

۱. لیست در پایتون چه تفاوتی با آرایه دارد؟

لیست‌ها در پایتون انعطاف‌پذیرتر از آرایه‌ها هستند، چون می‌توانند انواع داده‌های مختلف را ذخیره کنند و اندازه آن‌ها قابل تغییر است. آرایه‌ها (مثل آن‌هایی که در کتابخانه numpy هستند) معمولاً برای داده‌های هم‌نوع و محاسبات سریع استفاده می‌شوند.

۲. آیا می‌توانم لیستی را داخل لیست دیگری قرار دهم؟

بله! به این لیست‌ها، لیست‌های تو در تو می‌گویند. مثلاً [[1, 2], [3, 4]] یک لیست تو در تو است که می‌توانید با حلقه‌های تو در تو به عناصر آن دسترسی پیدا کنید.

 ۳. چگونه خطای Index out of range را برطرف کنم؟

این خطا وقتی رخ می‌دهد که به اندیسی دسترسی پیدا کنید که در لیست وجود ندارد. مطمئن شوید اندیس بین ۰ و len(list)-1 است. استفاده از len()‎ برای بررسی طول لیست کمک‌کننده خواهد بود.

۴. List Comprehension چیست و چرا از آن استفاده کنیم؟

List Comprehension روش کوتاه و خوانا برای ایجاد لیست‌های جدید است، مثل [x*2 for x in numbers]. این روش کد را مختصرتر می‌کند و برای فیلتر کردن یا تغییر داده‌ها بسیار کاربردی است.

 

آموزش برنامه نویسی با کوئرا کالج
k.bahrami

کامل بهرامی دانش‌آموخته کارشناسی ارشد رشته مهندسی کامپیوتر گرایش نرم‌افزار از دانشگاه ارومیه است. به حوزه کامپیوتر، برنامه‌نویسی و فناوری اطلاعات علاقه‌مند‌ بوده و در حوزه‌های مذکور در مجله کوئرا محتوا تولید می‌کند.

اشتراک در
اطلاع از
guest


0 دیدگاه‌
قدیمی‌ترین
تازه‌ترین بیشترین واکنش
بازخورد (Feedback) های اینلاین
View all comments