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


لیست‌ در پایتون از ساختارهای داده‌ای پرکاربرد در پایتون است و به شما این امکان  را می‌دهد تا گروهی از اشیاء (عناصر) را در یک مکان مشخص ذخیره کنید. نوع داده List به شما اجازه می‌دهد که اطلاعات را مرتب کنید، تغییر دهید و به آنها دسترسی داشته باشید. 

مفهوم لیست‌در پایتون (Lists)

لیست‌ها در پایتون به صورت دنباله‌ای از عناصر (elements) تعریف می‌شوند. عناصر در یک لیست می‌توانند از هر نوع داده‌ای باشند (عدد، رشته، لیست، و غیره). لیست‌ها در پایتون با دستور "list" تعریف می‌شوند و عناصر درون لیست با استفاده از کاما `,` جدا می‌شوند. به عنوان مثال:

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

در این مثال، "my_list" یک لیست پنج عددی از 1 تا 5 است.

ویژگی های مهم لیست در پایتون

لیست‌ها در پایتون سه ویژگی اصلی دارند: Changeable (تغییرپذیر)، Allow Duplicates (اجازه تکرار)، و Ordered (ترتیب‌دار). 

1. Changeable (تغییرپذیر): این ویژگی به معنای این است که می‌توانید عناصر لیست را تغییر دهید یا اضافه و حذف کنید. لیست‌ها در پایتون تغییرپذیرند، به این معنا که می‌توانید مقادیر عناصر لیست را در هر زمان تغییر دهید.

مثال:

my_list = [1, 2, 3, 4, 5]
my_list[0] = 10  # تغییر مقدار عنصر اول به 10
my_list.append(6)  # اضافه کردن عنصر جدید به انتهای لیست
my_list.remove(4)  # حذف عنصر با مقدار 4

2. Allow Duplicates (اجازه تکرار): این ویژگی به معنای این است که لیست‌ها می‌توانند دارای عناصر تکراری باشند. این بدان معناست که یک عنصر می‌تواند در لیست به تعدادی مرتب متوالی تکرار شود.

مثال:

duplicates_list = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4]

3. Ordered (ترتیب‌دار): این ویژگی به معنای این است که عناصر لیست دارای یک ترتیب مشخص هستند و این ترتیب در افزودن و حذف عناصر حفظ می‌شود. به عبارت دیگر، عناصر لیست به ترتیب درج شده‌اند.

مثال:

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

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

ویژگی های دیگر نوع داده لیست

1. قابلیت ذخیره انواع داده: لیست‌ها در پایتون از هر نوع داده‌ای می‌توانند تشکیل شوند. این به شما امکان می‌دهد تا در یک لیست عناصری از انواع مختلف (عدد، رشته، لیست دیگر، و غیره) را ذخیره کنید.

mixed_list = [1, "متن", [3, 4, 5], True]

2. اندیس‌گذاری و دسترسی به عناصر: لیست‌ها با استفاده از اندیس (شماره ترتیبی) عناصر به صورت سریع قابل دسترسی هستند. اندیس‌ها از صفر شروع می‌شوند. در صورتی که اندیس منفی دهید، از انتهای لیست به عقب حرکت می‌کنید.

my_list = [10, 20, 30, 40, 50]
print(my_list[0])  # 10
print(my_list[3])  # 40
last_element = my_list[-1]  # عنصر آخر (اندیس -1)
second_last_element = my_list[-2]  # عنصر قبل از آخر (اندیس -2)

3. تعداد دقیق عناصر: با استفاده از تابع "len()" می‌توانید تعداد عناصر موجود در یک لیست را بدست آورید.

my_list = [1, 2, 3, 4, 5]
length = len(my_list)
print(length)  # 5

4. امکان اضافه و حذف عناصر: شما می‌توانید با استفاده از توابع `append()`، `insert()`، `remove()` و `pop()` عناصر را به لیست اضافه کنید و از لیست حذف کنید.

my_list = [1, 2, 3]
my_list.append(4)      # اضافه کردن عنصر به انتهای لیست
my_list.insert(1, 5)   # اضافه کردن عنصر به اندیس 1
my_list.remove(2)      # حذف عنصر با مقدار 2
popped_element = my_list.pop(0)  # حذف و بازگشتن عنصر با اندیس 0

 

5. توابع مفید برای کار با لیست‌ها: پایتون دارای توابع مفیدی برای کار با لیست‌ها است که از جمله آنها می‌توان به `max()` (بزرگ‌ترین مقدار)، `min()` (کوچک‌ترین مقدار)، `sum()` (جمع تمام عناصر) و `sort()` (مرتب کردن لیست) اشاره کرد.

numbers = [5, 2, 9, 1, 8]
max_num = max(numbers)
min_num = min(numbers)
total = sum(numbers)
numbers.sort()

6. تکرار لیست: می‌توانید با استفاده از عملگر تکرار `*` یک لیست را تکرار کنید.

repeated_list = [1, 2, 3] * 3  # [1, 2, 3, 1, 2, 3, 1, 2, 3]

7. برش لیست (Slicing): شما می‌توانید با استفاده از برش لیست (slicing) زیرلیست‌های جدید از یک لیست ایجاد کنید.

my_list = [10, 20, 30, 40, 50]
sub_list = my_list[1:4]  # [20, 30, 40]

8. کنترل جریان با حلقه‌ها: لیست‌ها به شما اجازه می‌دهند با استفاده از حلقه‌ها (مثل حلقه `for`) بر روی عناصر آنها پیمایش انجام دهید.

fruits = ["سیب", "پرتقال", "انگور"]
for fruit in fruits:
    print(fruit)

9. **لیست‌های تودرتو (Nested Lists)**: شما می‌توانید لیست‌ها را در داخل یکدیگر (لیست‌های تودرتو) قرار دهید تا ساختار‌های داده‌ای پیچیده‌تری ایجاد کنید.

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

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

توابع مربوط به لیست

پایتون دارای تعدادی تابع مربوط به لیست است که به شما امکانات مختلفی ارائه می‌دهند. به عنوان مثال:

- "len(my_list)" برای محاسبه تعداد عناصر در لیست.

- "max(my_list)" برای یافتن بزرگ‌ترین مقدار در لیست.

- "min(my_list)" برای یافتن کوچک‌ترین مقدار در لیست.

- "sum(my_list)" برای محاسبه جمع تمام اعداد در لیست.

 

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

لیست‌ها اغلب با حلقه‌ها (مثل حلقه `for`) به کار می‌روند. این اجازه را می‌دهد تا به تمام عناصر لیست به ترتیب دسترسی داشته باشید. به عنوان مثال:

for item in my_list:
    print(item)

این حلقه هر عنصر از "my_list" را به ترتیب در هر مرحله چاپ می‌کند.

بیایید یک مثال کامل‌تر بنویسیم که نشان دهد چگونه با لیست‌ها کار کنیم:

 

# تعریف یک لیست
fruits = ["توت فرنگی", "سیب", "پرتقال", "خرما", "زردآلو"]

# چاپ تمام عناصر لیست
print("لیست میوه‌ها:")
for fruit in fruits:
    print(fruit)

# اضافه کردن میوه جدید به لیست
fruits.append("گلابی")

# حذف میوه از لیست
fruits.remove("خرما")

# چاپ تعداد میوه‌ها و میانگین طول نام میوه‌ها
num_fruits = len(fruits)
total_length = sum(len(fruit) for fruit in fruits)
average_length = total_length / num_fruits

print("تعداد میوه‌ها:", num_fruits)
print("میانگین طول نام میوه‌ها:", average_length)

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

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

تمرین های این درس

1. یک لیست شامل نام تعدادی دانش آموز بسازید و بعد از ساختن با استفاده از متد‌ یا تایع هایی که یاد گرفتید چند نام به این لیست اضافه کنید.

2. یک لیست شامل اعداد تصادفی بسازید و یک عدد را از داخل لیست انتخاب کنید. حالا بررسی کنید که آیا عددی که انتخاب کردید در لیست وجود دارد یا خیر؟ و سپس نتیجه در خروجی نمایش دهید.

3. یک لیست از رشته‌ها یا اعداد ایجاد کنید. برنامه باید لیست را معکوس کرده و نتیجه را نمایش دهد. به عنوان مثال، اگر لیست شما [1, 2, 3, 4, 5] باشد، خروجی باید [5, 4, 3, 2, 1] باشد.

4. یک لیست از اشیاء (مثلاً نام‌های دانشجویان) ایجاد کنید. حالا یک نام را انتخاب و آن را از لیست حذف کنید. برنامه بایددر خروجی نمایش دهد.

5. دو لیست از اعداد یا رشته‌ها ایجاد کنید. حالا برنامه‌ای بنویسید که  این دو لیست را ترکیب کرده و لیست نهایی را نمایش دهد.