لیست ها در پایتون
لیست ها در پایتون ساختارهای داده ای قدرتمند و پویایی هستند که برای ذخیره سازی، سازماندهی و دستکاری مجموعه ای از مقادیر به طور کارآمد مورد استفاده قرار می گیرند. در این راهنمای جامع، به بررسی کامل عملیات و کاربردهای مختلف لیست ها در زبان برنامه نویسی پایتون می پردازیم.
۱. ایجاد لیست:
- ایجاد لیست خالی:
my_list = []
- ایجاد لیست با مقادیر اولیه:
numbers = [۱, ۲, ۳, ۴, ۵]
fruits = ["سیب", "موز", "انگور"]
mixed_data = [True, ۱۰.۵, "سلام"]
۲. دسترسی به عناصر :
- با استفاده از شاخص می توان به هر عنصر لیست دسترسی پیدا کرد. شاخص گذاری از ۰ شروع می شود و می توان با استفاده از مقادیر منفی به عناصر از انتهای لیست نیز دسترسی داشت.
# دسترسی به اولین عنصر
first_element = numbers[۰] # مقدار first_element برابر با ۱ خواهد بود
# دسترسی به آخرین عنصر
last_element = numbers[-۱] # مقدار last_element برابر با ۵ خواهد بود
# دسترسی به عنصر دوم از انتهای لیست
second_last_element = numbers[-۲] # مقدار second_last_element برابر با ۴ خواهد بود
۳. تغییر مقادیر عناصر :
می توان با استفاده از شاخص و مقدار جدید، مقادیر عناصر لیست را به روز رسانی کرد.
# تغییر مقدار عنصر سوم لیست numbers به ۲۰
numbers[۲] = ۲۰
# تغییر عنصر اول لیست mixed_data به "پایتون"
mixed_data[۰] = "پایتون"
۴. افزودن عناصر به :
برای اضافه کردن عناصر جدید به لیست، می توان از متدهای append()
و insert()
استفاده کرد.
append()
: عنصر جدید را به انتهای لیست اضافه می کند.
numbers.append(۶) # لیست numbers به صورت [۱, ۲, ۲۰, ۴, ۵, ۶, ۶]
در خواهد آمد
insert()
: عنصر جدید را در موقعیت دلخواه در لیست درج می کند.
mixed_data.insert(۱, "داده جدید") # ==> ['پایتون', 'داده جدید', ۱۰.۵, 'سلام']
۵. حذف عناصر :
برای حذف عناصر از لیست، می توان از متد remove()
یا عملگر del
استفاده کرد.
remove()
: عنصری با مقدار مشخص را از لیست حذف می کند.
numbers.remove(۳) # لیست numbers به صورت [۱, ۲, ۴, ۵, ۶] در خواهد آمد
del
: عنصر با شاخص مشخص را از لیست حذف می کند.
del mixed_data[۲] # لیست mixed_data به صورت ["پایتون", "داده جدید", ۱۰.۵, "سلام"] در خواهد آمد
۶. پیمایش در لیست:
برای پیمایش در لیست و انجام عملیات بر روی هر عنصر، می توان از حلقه های for
استفاده کرد.
# دو برابر کردن هر عدد در لیست numbers
for number in numbers:
print(number * ۲)
# چاپ نوع هر عنصر در لیست mixed_data
for item in mixed_data:
print(type(item))
۷. ترکیب لیست ها:
می توان با استفاده از عملگر +
یا متد extend()
لیست ها را با یکدیگر ترکیب کرد.
+
: لیست ها را به صورت یک لیست جدید با عناصر اولی از لیست سمت چپ و سپس عناصر لیست سمت راست ترکیب می کند.
list1 = [۱, ۲, ۳]
list2 = [۴, ۵, ۶]
combined_list = list1 + list2 # combined_list: [1, 2, 3, 4, 5, 6]
-
extend()
متد
extend()
در پایتون برای الحاق عناصر یک iterabe (مانند لیست، تاپل یا رشته) به انتهای لیست دیگر استفاده میشود. این متد، لیست مقصد را تغییر میدهد و لیست جدیدی را برنمیگرداند.نحوه عملکرد:
فرض کنید لیست
my_list1
شامل مقادیر[۱, ۲, ۳]
و لیستmy_list2
شامل مقادیر[۴, ۵, ۶]
باشد.با اجرای دستور
my_list1.extend(my_list2)
, لیستmy_list1
به صورت[۱, ۲, ۳, ۴, ۵, ۶]
تغییر خواهد یافت.تفاوت با
append()
:append()
تنها یک عنصر را به انتهای لیست اضافه میکند، در حالی کهextend()
تمام عناصر یک iterable را الحاق میکند.
مثالهای کاربردی:
۱. الحاق دو لیست:
Pythonmy_list1 = [۱, ۲, ۳] my_list2 = [۴, ۵, ۶] my_list1.extend(my_list2) print(my_list1) # خروجی: [۱, ۲, ۳, ۴, ۵, ۶]
۲. الحاق عناصر رشته:
Pythonmy_list = [۱, ۲, ۳] my_string = "Hello" my_list.extend(my_string) print(my_list) # خروجی: [۱, ۲, ۳, 'H', 'e', 'l', 'l', 'o']
۳. الحاق تاپل:
Pythonmy_list = [۱۰, ۲۰, ۳۰] my_tuple = (۴۰, ۵۰) my_list.extend(my_tuple) print(my_list) # خروجی: [۱۰, ۲۰, ۳۰, ۴۰, ۵۰]
۴. الحاق لیست به لیست تودرتو:
Pythonparent_list = [[۱, ۲], [۳, ۴]] child_list = [۵, ۶] parent_list[۰].extend(child_list) print(parent_list) # خروجی: [[۱, ۲, ۵, ۶], [۳, ۴]]
۵. الحاق عناصر با شرط:
Pythonnumbers = [۱, ۲, ۳, ۴, ۵, ۶] even_numbers = [number for number in numbers if number % ۲ == ۰] numbers.extend(even_numbers) print(numbers) # خروجی: [۱, ۲, ۳, ۴, ۵, ۶, ۲, ۴, ۶]
نکات:
extend()
در جاهایی که میخواهیم تمام عناصر یک iterable را به طور مستقیم به انتهای لیست اضافه کنیم، کاربرد دارد.- اگر به دنبال الحاق یک عنصر واحد هستید، از
append()
استفاده کنید. extend()
لیست مقصد را تغییر میدهد و لیست جدیدی برنمیگرداند.- می توانید از
extend()
برای الحاق عناصر انواع مختلف داده (مانند لیست، تاپل و رشته) استفاده کنید.
۸. بررسی عضویت در لیست:
می توان با استفاده از عملگر in
بررسی کرد که آیا عنصری خاص در لیست وجود دارد یا خیر.
if "سیب" in fruits:
print("سیب در لیست میوه ها موجود است")
else:
print("سیب در لیست میوه ها موجود نیست")
۹. یافتن طول :
برای یافتن تعداد عناصر موجود در لیست، می توان از تابع len()
استفاده کرد.
list_length = len(mixed_data)
print(f"طول لیست mixed_data برابر با {list_length} است")
۱۰. کپی کردن :
برای ایجاد کپی از لیست، می توان از روش های زیر استفاده کرد:
- ایجاد کپی با برش (
[:]
):
list_copy = mixed_data[:] # لیست copy به طور کامل محتوای mixed_data را کپی می کند
- استفاده از تابع
copy()
از ماژولcopy
:
import copy
copied_list = copy.copy(mixed_data) # لیست copied_list به طور کامل محتوای mixed_data را کپی می کند
۱۱. مرتب سازی :
می توان با استفاده از متد sort()
لیست را به ترتیب صعودی یا نزولی مرتب کرد.
numbers.sort() # لیست numbers به صورت [۱, ۲, ۳, ۴, ۵, ۶] مرتب می شود
numbers.sort(reverse=True) # لیست numbers به صورت [۶, ۵, ۴, ۳, ۲, ۱] (نزولی) مرتب می شود
۱۲. معکوس کردن :
می توان با استفاده از متد reverse()
ترتیب عناصر لیست را معکوس کرد.
fruits.reverse() # لیست fruits به صورت ["انگور", "موز", "سیب"] در خواهد آمد
۱۳. حذف عناصر تکراری :
برای حذف عناصر تکراری از لیست، می توان از مجموعه ها (set
) به عنوان واسطه استفاده کرد.
unique_numbers = list(set(numbers)) # لیست unique_numbers فقط شامل مقادیر منحصربفرد لیست numbers خواهد بود
۱۴. کار با زیر لیست ها:
می توان با استفاده از برش ([:]
) زیر لیست هایی از لیست اصلی استخراج کرد.
first_three = numbers[:۳] # زیر لیست first_three شامل سه عنصر اول لیست numbers خواهد بود (یعنی [۱, ۲, ۳])
last_two = mixed_data[-۲:] # زیر لیست last_two شامل دو عنصر آخر لیست mixed_data خواهد بود (یعنی [۱۰.۵, "سلام"])
۱۵. جمع آوری عناصر از لیست بر اساس شرط:
می توان با استفاده از لیست comprehension یا متد filter()
عناصری از لیست را که شرط خاصی را دارند، در یک لیست جدید جمع آوری کرد.
even_numbers = [number for number in numbers if number % ۲ == ۰] # لیست even_numbers شامل تمام اعداد زوج در لیست numbers خواهد بود
positive_numbers = list(filter(lambda x: x > ۰, numbers)) # لیست positive_numbers شامل تمام اعداد بزرگتر از صفر در لیست numbers خواهد بود
۱۶. کاربردهای لیست در پایتون:
لیست ها در طیف گسترده ای از برنامه های پایتون کاربرد دارند، از جمله:
- ذخیره سازی مجموعه داده ها
- مدل سازی روابط بین داده ها
- تجزیه و تحلیل داده ها
- الگوریتم ها و ساختارهای داده
- توسعه وب
- اسکریپت نویسی اتوماسیون
- یادگیری ماشین
- هوش مصنوعی