0
0

Elementor #9036

جلسه پنجم — لیست‌ها (List) در پایتون

تعریف لیست (List) در پایتون

لیست (List) یکی از ساختارهای داده‌ای (Data Structure) در زبان پایتون است که برای ذخیره‌سازی مجموعه‌ای از داده‌ها در یک متغیر واحد استفاده می‌شود. لیست‌ها در پایتون قابل تغییر (Mutable) هستند؛ یعنی می‌توان بعد از ایجاد، عناصر آن‌ها را تغییر، حذف یا اضافه کرد.

نوع داده‌هایی که می‌تونن داخل لیست باشن

در پایتون، لیست‌ها می‌تونن شامل انواع مختلف داده باشن؛ یعنی لازم نیست همه عناصر از یک نوع باشن. مثلاً داخل یه لیست می‌تونه هم عدد باشه، هم رشته، هم بولین و حتی لیست دیگه.

مثال
my_list = [12, "hamid", True, 4.5, [1, 2, 3]]
انواع داده‌ای که می‌تونه داخل لیست قرار بگیره:
عدد صحیح (int)، عدد اعشاری (float)، رشته (str)، مقدار بولی (bool)، لیست تو در تو (nested list)، هر نوع داده‌ی دیگر (مثل tuple، dict، object و ...)

شکل ظاهری لیست

لیست‌ها با استفاده از براکت [ ] ساخته می‌شن و عناصر با کاما , از هم جدا می‌شن:

مثال
numbers = [1, 2, 3, 4, 5]

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

1. دسترسی به اعضا (Accessing Elements)

در لیست‌ها می‌تونیم با استفاده از اندیس (index) به هر عضو دسترسی پیدا کنیم. اندیس‌ها از 0 شروع می‌شن.

مثال
names = ["Ali", "Sara", "Reza"]


print(names[0]) #output: Ali
print(names[2]) #output: Reza

می‌تونیم از اندیس منفی هم استفاده کنیم که از آخر لیست شمارش می‌کنه:

مثال
print(names[-1])  #output: Reza

2. قابل تغییر بودن (Mutable بودن)

لیست‌ها mutable هستند، یعنی بعد از ساخته شدن هم می‌تونیم مقدار اعضا رو تغییر بدیم، عضو جدید اضافه کنیم یا عضو حذف کنیم.

مثال
numbers = [10, 20, 30]


numbers[1] = 50 # تغییر مقدار دوم
numbers.append(40) # افزودن عضو جدید
print(numbers) #output: [10, 50, 30, 40]

3. پذیرفتن مقادیر تکراری (Duplicate Values)

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

مثال
nums = [1, 2, 2, 3, 3, 3]


print(nums) #output: [1, 2, 2, 3, 3, 3]

4. دارای ترتیب (Ordered بودن)

لیست‌ها در پایتون دارای ترتیب مشخصی هستند؛ یعنی عناصر به همان ترتیبی که اضافه شدن نمایش داده می‌شن.

مثال
fruits = ["apple", "banana", "cherry"]


print(fruits) #output: ['apple', 'banana', 'cherry']

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

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

روش 1: با استفاده از براکت‌های مربعی []

مثال
a = []

روش 2: با استفاده از تابع list()

مثال
b = list()

هر دو روش یه لیست خالی می‌سازن و هیچ تفاوت عملکردی ندارن. می‌تونیم با تابع type() بررسی کنیم:

مثال
print(type(a))      # output: <class 'list'>


print(type(b)) # output: 

دسترسی به اعضای لیست با اندیس و برش (Indexing & Slicing)

لیست‌ها چون دارای ترتیب هستند، می‌تونیم با استفاده از اندیس و اسلایسینگ به اعضا دسترسی پیدا کنیم.

۱. دسترسی با اندیس (Indexing)

مثال
fruits = ["apple", "banana", "cherry", "date"]


print(fruits[0]) # output: apple
print(fruits[2]) # output: cherry

اندیس منفی

print(fruits[-1]) # output: date
print(fruits[-2]) # output: cherry

نکته مهم: اگر اندیسی وارد کنیم که خارج از محدوده‌ی لیست باشه، خطای IndexError می‌گیریم.

۲. برش یا اسلایسینگ (Slicing)

فرمول کلی اسلایس:

list[start:end:step]

مثال
fruits = ["apple", "banana", "cherry", "date", "fig"]


print(fruits[1:4]) # ['banana', 'cherry', 'date']
print(fruits[:3]) # ['apple', 'banana', 'cherry']
print(fruits[2:]) # ['cherry', 'date', 'fig']
print(fruits[::2]) # ['apple', 'cherry', 'fig']

مثال‌های عملی

مثال: تغییر عضو با اندیس

مثال
fruits = ["apple", "banana", "cherry"]


fruits[1] = "mango"
print(fruits)

output: ['apple', 'mango', 'cherry']

مثال: ادغام دو لیست

مثال
list1 = [1, 2, 3]


list2 = [4, 5, 6]
result = list1 + list2
print(result)

output: [1, 2, 3, 4, 5, 6]

مثال: ضرب لیست

مثال
fruits = ["apple", "banana"]


print(fruits * 2)

output: ['apple', 'banana', 'apple', 'banana']

مثال: پیمایش با حلقه for

مثال
fruits = ["apple", "banana", "cherry"]


for fruit in fruits:
print(fruit)

output:
apple
banana
cherry

متدهای پرکاربرد لیست

متد append()

تعریف و کاربرد: append() یک عضو را در انتهای لیست اضافه می‌کند. لیست اصلی تغییر می‌کند و مقدار برگشتی None است.

مثال
numbers = []


for i in range(5):
num = int(input("enter your number: "))
numbers.append(num)

print("final_list:", numbers)

متد extend()

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

مثال
numbers = [1, 2, 3]


numbers.extend([4, 5, 6])
print(numbers)

output: [1, 2, 3, 4, 5, 6]

متد insert()

قابلیت افزودن عضو در موقعیت دلخواه: list.insert(index, value)

مثال
numbers = [10, 20, 30]


numbers.insert(1, 15) # اضافه کردن 15 در اندیس 1
print(numbers)

output:
[10, 15, 20, 30]

متد index()

برمی‌گرداند اندیس اولین وقوع یک مقدار در لیست: list.index(value)

اگر مقدار وجود نداشته باشد، خطای ValueError می‌دهد.

متد pop()

حذف و برگرداندن عضو با اندیس مشخص (یا آخرین عضو در صورت عدم تعیین اندیس): list.pop(index)

مثال
numbers = [10, 20, 30, 40]


removed = numbers.pop()
print("Removed:", removed)
print("List after pop:", numbers)

output:
Removed: 40
List after pop: [10, 20, 30]

متد remove()

حذف اولین عضو مطابق مقدار مشخص شده: list.remove(value)

مثال
numbers = [10, 20, 30, 20, 40]


numbers.remove(20) # حذف اولین 20
print(numbers)

output: [10, 30, 20, 40]

متد count()

تعداد دفعات تکرار یک مقدار را برمی‌گرداند: list.count(value)

مثال
numbers = [10, 20, 30, 20, 40, 20]


count_20 = numbers.count(20)
print("Number of 20s:", count_20)

output:
Number of 20s: 3

متد sort()

مرتب‌سازی لیست (عمومی): list.sort(reverse=False). لیست اصلی تغییر می‌کند.

مثال
numbers = [30, 10, 40, 20]


numbers.sort()
print(numbers)

output:
[10, 20, 30, 40]
مرتب‌سازی نزولی

numbers = [30, 10, 40, 20]
numbers.sort(reverse=True)
print(numbers)

output:
[40, 30, 20, 10]

متد clear()

پاک کردن تمام اعضای لیست: list.clear()

مثال
numbers = [10, 20, 30, 40]


numbers.clear()
print(numbers)

output:
[]

متدهای مرتبط با رشته: split() و join()

متد split()

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

مثال
info = "Python - Django - Flask"


parts = info.split(" - ")
print(parts)

output:
['Python', 'Django', 'Flask']

متد join()

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

مثال
words = ['apple', 'banana', 'cherry']


sentence = " ".join(words)
print(sentence)

output:
apple banana cherry

langs = ['Python', 'Django', 'Flask']
joined = " - ".join(langs)
print(joined)

output:
Python - Django - Flask
محتوای این صفحه برگرفته از سند آموزشی جلسه پنجم است.

آشنایی با شما افتخار ماست

درخواست مشاوره رایگان

از طریق راه های زیر با ما در ارتباط باشید

  • 0219996000
  • herowp.ir@gmail.com
  • @herowp.ir
  • ۹ صبح تا ۹ شب

فرم درخواست مشاوره

مشاوره