لیست ها (List) در زبان پایتون

لیست ها (List) در زبان پایتون

مجموعه ها در زبان پایتون

چهار نوع data type مربوط به «مجموعه» یا collection در زبان پایتون موجود است:

  • List ها: یک مجموعه منظم و قابل تغییر است. داشتن اعضای تکراری مجاز است.
  • Tupple ها: یک مجموعه ی منظم و غیرقابل تغییر است. داشتن اعضای تکراری مجاز است.
  • Set ها: یک مجموعه ی غیرمنظم و index نشده است. وجود اعضای تکراری مجاز نیست.
  • Dictionary ها: یک مجموعه ی غیرمنظم، قابل تغییر و index شده است. وجود اعضای تکراری مجاز نیست.

زمانی که می خواهید مجموعه ای از داده ها را در یک متغیر قرار دهید، باید یکی از موارد بالا را انتخاب کنید. درک خصوصیات و ویژگی های هر مورد از اعضای بالا به شما کمک می کند که گزینه ی بهتر را برای برنامه ی خودتان انتخاب کنید و انتخاب صحیح نوع داده یعنی عملکرد و سرعت بهتر و همچنین امنیت بیشتر برنامه های شما. در این جلسه در مورد لیست ها صحبت خواهیم کرد.

List ها

لیست ها مجموعه ای منظم و قابل ویرایش هستند. برای نوشتن لیست ها باید از علامت براکت استفاده کنید:

thislist = ["apple", "banana", "cherry"]
print(thislist)

خروجی:

['apple', 'banana', 'cherry']

همچنین برای دسترسی به اعضای list ها از شماره ایندکس آن ها استفاده خواهید کرد:

thislist = ["apple", "banana", "cherry"]
print(thislist[1])

خروجی banana خواهد بود.

توجه داشته باشید که اگر عدد index را به صورت منفی وارد کنید، شمارش از انتهای رشته آغاز خواهد شد:

thislist = ["apple", "banana", "cherry"]
print(thislist[-1])

خروجی cherry است.

نکته: اگر بخواهید اعضای بین ایندکس x و y را انتخاب کنید باید آن را به شکل x:y بنویسید.

مثال:

thislist = ["apple", "banana", "cherry", "orange", "kiwi", "melon", "mango"]
print(thislist[2:5])

خروجی:

خروجی:

['cherry', 'orange', 'kiwi']

این کد اعضای 2 تا 5 را برای ما برگردانده است. یادتان باشد که index از عدد صفر شروع می شود و همچنین آخرین عضو مشمول این دستور نیست بنابراین خود شماره ی 5 انتخاب نخواهد شد بلکه تا شماره ی 5 انتخاب می شود. همچنین اگر دقت کنید متوجه خواهید شد که مقدار برگردانده شده یک List جدید و مستقل از لیست قبلی است.

شما می توانید این کار را برای index های منفی نیز انجام دهید:

thislist = ["apple", "banana", "cherry", "orange", "kiwi", "melon", "mango"]
print(thislist[-4:-1])

خروجی:

['orange', 'kiwi', 'melon']

همچنین برای تغییر مقداری خاص می توانیم از همین index ها استفاده کنیم:

thislist = ["apple", "banana", "cherry"]
thislist[1] = "blackcurrant"

print(thislist)

خروجی:

['apple', 'blackcurrant', 'cherry']

گردش درون لیست ها و بررسی تعداد اعضا

برای گردش درون List ها میتوانید از حلقه ی for استفاده کنید:

thislist = ["apple", "banana", "cherry"]
for x in thislist:
  print(x)

خروجی:

apple
banana
cherry

همچنین با استفاده از اپراتور in که قبلا یاد گرفته ایم میتوانیم وجود یک عنصر را درون این list ها بررسی کنیم. به مثال زیر توجه کنید:

thislist = ["apple", "banana", "cherry"]
if "apple" in thislist:
  print("Yes, 'apple' is in the fruits list")

خروجی:

Yes, 'apple' is in the fruits list

حالا برای اینکه بدانیم این list چند عضو دارد میتوان از تابع ()len استفاده کرد:

thislist = ["apple", "banana", "cherry"]
print(len(thislist))

خروجی عدد 3 خواهد بود.

اضافه کردن و حذف کردن اعضا از List

برای اضافه کردن اعضا می توانید از تابع ()append استفاده کنید. این تابع اعضای جدید را به انتهای list اضافه می کند:

thislist = ["apple", "banana", "cherry"]

thislist.append("orange")

print(thislist)

خروجی:

['apple', 'banana', 'cherry', 'orange']

اما اگر می خواهید اعضا به جای اضافه شدن به آخر لیست، در index خاصی اضافه شوند از متد ()insert استفاده می کنیم:

thislist = ["apple", "banana", "cherry"]
thislist.insert(1, "orange")
print(thislist)

خروجی:

['apple', 'orange', 'banana', 'cherry']

برای حذف اعضا از یک لیست نیز متدهای مختلفی وجود دارد. به طور مثال تابع ()remove آیتمی را حذف میکند که شما صریحا مشخص کرده باشید:

thislist = ["apple", "banana", "cherry"]
thislist.remove("banana")
print(thislist)

خروجی:

['apple', 'cherry']

در حالی که متد ()pop ایندکس دریافتی را حذف خواهد کرد. اگر به آن هیچ ایندکسی ندهید، آخرین عنصر list حذف خواهد شد:

thislist = ["apple", "banana", "cherry"]
thislist.pop()
print(thislist)

خروجی:

['apple', 'banana']

همچنین کلیدواژه ی del ایندکس مشخص شده را حذف خواهد کرد:

thislist = ["apple", "banana", "cherry"]
del thislist[0]
print(thislist)

خروجی:

['banana', 'cherry']

هشدار: اگر برای del ایندکس خاصی مشخص نکنید تمام list را حذف خواهد کرد. مثال:

thislist = ["apple", "banana", "cherry"]
del thislist
print(thislist)

خروجی این کد خطای زیر خواهد بود:

NameError: name 'thislist' is not defined

متد ()empty نیز لیست را خالی می کند اما خود لیست حذف نخواهد شد:

thislist = ["apple", "banana", "cherry"]
thislist.clear()
print(thislist)

خروجی:

[]

کپی کردن لیست ها

برای کپی کردن لیست ها نمی توانید به شکل list2 = list1 عمل کنید چرا که در این حالت list2 تنها یک ارجاع (reference) به list1 است و هر تغییری روی list1 روی list2 نیز اتفاق می افتد. برای کپی کردن لیست ها باید از تابع ()copy یا ()list استفاده کنید.

استفاده از متد copy:

thislist = ["apple", "banana", "cherry"]
mylist = thislist.copy()
print(mylist)

خروجی:

['apple', 'banana', 'cherry']

استفاده از متد list:

thislist = ["apple", "banana", "cherry"]
mylist = list(thislist)
print(mylist)

خروجی:

['apple', 'banana', 'cherry']

البته شما می توانید از ()list استفاده کنید تا یک لیست جدید بسازید:

thislist = list(("apple", "banana", "cherry"))
print(thislist)

خروجی:

['apple', 'banana', 'cherry']

ادغام کردن لیست ها

راه های مختلفی برای ادغام دو لیست وجود دارد. ساده ترین راه استفاده از اپراتور + است:

list1 = ["a", "b" , "c"]
list2 = [1, 2, 3]

list3 = list1 + list2
print(list3)

خروجی:

['a', 'b', 'c', 1, 2, 3]

راه دیگر ادغام لیست ها استفاده از append است:

list1 = ["a", "b" , "c"]
list2 = [1, 2, 3]

for x in list2:
  list1.append(x)

print(list1)

خروجی:

['a', 'b', 'c', 1, 2, 3]

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

list1 = ["a", "b" , "c"]
list2 = [1, 2, 3]

list1.extend(list2)
print(list1)

خروجی:

['a', 'b', 'c', 1, 2, 3]

امیدوارم به طور کامل به لیست ها آشنا شده باشید.

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

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

سعید
13 اسفند 1400
سلام خسته نباشید خیلی ممنون بابت مطالب خوب و آموزنده تون ببخشید اون قسمت نوشتید متد empty() به جاش تو سورس کد زدید clear () لطفا اینو درستش کنید ممنون

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.