لیستها
مجموعه ها (آرایه ها) در پایتون
چهار نوع داده مجموعه (به انگلیسی: Collection) در زبان برنامهنویسی پایتون وجود دارد:[۱]
- لیست یک collection مرتب و قابل تغییر است. میتواند عضو تکراری هم داشته باشد
- تاپل (چندتایی مرتب) collection مرتب و غیرقابل تغییر است. میتواند عضو تکراری داشته باشد
- مجموعه (Set) یک collection نامرتب و بدون اندیس (به انگلیسی: unindexed) است. عضو تکراری ندارد
- دیکشنری یک collection نامرتب، غیرقابل تغییر و اندیس گذاری شدهاست. عضو تکراری ندراد
هنگام انتخاب نوع یک collection، دانستن ویژگیهای آن نوع مفید است. انتخاب نوع درست برای مجموعه داده خاص میتواند به معنای حفاظت از معنی باشد و میتواند به معنی افزایش efficiency (به فارسی: کارآمدی) و امنیت باشد.
فهرست
لیست یک collection مرتب و قابل تغییر است. در پایتون لیستها داخل براکتها [ ] نوشته میشوند.
مثال
یک لیست ایجاد میکند:
1 thislist = ["apple", "banana", "cherry"]
2 print(thislist)
دسترسی به آیتم ها
میتوانید با ارجاع زدن به عدد اندیس به آیتمهای لیست دسترسی داشته باشید:
مثال
دومین آیتم لیست را چاپ میکند:
1 thislist = ["apple", "banana", "cherry"]
2 print(thislist[1])
اندیس گذاری منفی
اندیس گذاری منفی یعنی شروع از انتها، -1
به آخرین آیتم اشاره میکند، -2
به دومین آیتم از آخر اشاره میکند و غیره.
مثال
آخرین آیتم لیست را چاپ میکند:
1 thislist = ["apple", "banana", "cherry"]
2 print(thislist[-1])
محدوده اندیس ها
میتوانید محدوده اندیسها را با مشخص کردن نقطه شروع و نقطه پایان محدوده تعیین کنید.
هنگام مشخص کردن محدوده، مقدار برگشتی لیست جدیدی با آیتمهای مشخص خواهد بود.
مثال
سومین، چهارمین و پنجمین آیتم را برمیگرداند:
1 thislist = ["apple", "banana", "cherry", "orange", "kiwi", "melon", "mango"]
2 print(thislist[2:5])
در صورت تعیین نکردن مقدار شروع، محدوده از اولین آیتم آغاز میشود:
مثال
این مثال آیتمها را از شروع تا “orange” برمیگرداند:
1 thislist = ["apple", "banana", "cherry", "orange", "kiwi", "melon", "mango"]
2 print(thislist[:4])
در صورت تعیین نکردن مقدار نهایی، محدوده تا انتهای لیست پیش خواهد رفت:
مثال
این کثال آیتمها را از “cherry” تا انتها برمیگرداند:
1 thislist = ["apple", "banana", "cherry", "orange", "kiwi", "melon", "mango"]
2 print(thislist[2:])
محدوده اندیس های منفی
اگر میخواهید جستجو را از انتهای لیست آغاز کنید، اندیسهای منفی تعیین کنید:
مثال
این مثال آیتمها را از اندیس (شامل خود -۴) تا اندیس -۱ (شامل -۱ نمیشود) برمیگرداند
1 thislist = ["apple", "banana", "cherry", "orange", "kiwi", "melon", "mango"]
2 print(thislist[-4:-1])
تغییر مقدار آیتم
برای تغییر مقدار یک آیتم خاص، به شماره اندیس آن ارجاع بزنید:
مثال
آیتم دوم را تغییر میدهد:
1 thislist = ["apple", "banana", "cherry"]
2 thislist[1] = "blackcurrant"
3 print(thislist)
پیمایش در یک لیست
میتوانید با استفاده از حلقه for
در لیست پیمایش کنید:
مثال
همهٔ آیتمهای لیست را یک به یک چاپ میکند:
1 thislist = ["apple", "banana", "cherry"]
2 for x in thislist:
3 print(x)
for
در پایتون بیشتر خواهید آموخت.بررسی وجود یک آیتم
برای تعیین اینکه آیا یک آیتم در لیست وجود دارد یا نه از کلمه کلیدی in
استفاده میشود:
مثال
وجود “apple” را در لیست بررسی میکند:
1 thislist = ["apple", "banana", "cherry"]
2 if "apple" in thislist:
3 print("Yes, 'apple' is in the fruits list")
طول لیست
برای تعیین تعداد آیتمهای لیست، از تابع len()
استفاده میشود:
مثال
تعداد آیتمهای لیست را چاپ میکند:
1 thislist = ["apple", "banana", "cherry"]
2 print(len(thislist))
اضافه کردن آیتم ها
برای اضافه کردن آیتمها به انتهای لیست از متد append() استفاده میشود:
مثال
از متد append()
برای اضافه کردن یک آیتم استفاده میکند:
1 thislist = ["apple", "banana", "cherry"]
2 thislist.append("orange")
3 print(thislist)
برای اضافه کردن آیتم در اندیش مشخص از متد insert() استفاده میشود:
مثال
آیتم را در دومین مکان وارد میکند:
1 thislist = ["apple", "banana", "cherry"]
2 thislist.insert(1, "orange")
3 print(thislist)
حذف آیتم
متدهای بسیاری برای حذف آیتمها از لیست وجود دارد:
مثال
متد remove()
آیتم مشخص شده را حذف میکند:
1 thislist = ["apple", "banana", "cherry"]
2 thislist.remove("banana")
3 print(thislist)
مثال
متد pop()
اندیس مشخص شده را (یا اگر اندیس مشخص نشده باشد آخرین آیتم را) حذف میکند:
1 thislist = ["apple", "banana", "cherry"]
2 thislist.pop()
3 print(thislist)
مثال
کلمه کلیدی del
اندیس مشخص شده را حذف میکند:
1 thislist = ["apple", "banana", "cherry"]
2 del thislist[0]
3 print(thislist)
مثال
کلمه کلیدی del
کل لیست را هم بطور کامل حذف میکند:
1 thislist = ["apple", "banana", "cherry"]
2 del thislist
مثال
متد clear()
لیست را خالی میکند:
1 thislist = ["apple", "banana", "cherry"]
2 thislist.clear()
3 print(thislist)
کپی کردن لیست
با تایپ کردن list2 = list1
نمیتوان یک لیست را به سادگی کپی کرد زیرا: list2
فقط یه ارجاع به list1
میشود و تغییرات اعمال شده در list1
بطور خودکار در list2
هم اعمال میشود.
برای ایجاد کپی روشهایی وجود دارد، یکی از روشها استفاده از متد لیست داخلی copy()
است.
مثال
با متد copy()
یک کپی از لیست ایجاد کنید:
1 thislist = ["apple", "banana", "cherry"]
2 mylist = thislist.copy()
3 print(mylist)
روش دیگر برای ایجاد کپی استفاده از متد داخلی list()
است.
مثال
با متد list()
یک کپی از لیست ایجاد میکند:
1 thislist = ["apple", "banana", "cherry"]
2 mylist = list(thislist)
3 print(mylist)
پیوستن (به انگلیسی: Join) دو لیست به هم
در پایتون روشهای زیادی برای join یا الحاق (به انگلیسی: concatenate) دو یا چند لیست وجود دارد.
یکی از سادهترین روشها استفاده از عملگر + است.
مثال
Join دو لیست به هم
1 list1 = ["a", "b" , "c"]
2 list2 = [1, 2, 3]
3
4 list3 = list1 + list2
5 print(list3)
یکی دیگر از روشهای الحاق دو لیست ضمیمه کردن (به انگلیسی: append) یک به یک همهٔ آیتمهای list2 به list1 است:
مثال
List2 را به list1 ضمیمه میکند:
1 list1 = ["a", "b" , "c"]
2 list2 = [1, 2, 3]
3
4 for x in list2:
5 list1.append(x)
6
7 print(list1)
یا میتوانید از متد extend()
که هدف ظان اضافه کردن عنصرها از لیستی به لیست دیگر است استفاده کنید:
مثال
استفاده از متد extend()
برای اضافه کردن list2 در انتهای list1:
1 list1 = ["a", "b" , "c"]
2 list2 = [1, 2, 3]
3
4 list1.extend(list2)
5 print(list1)
سازنده (Constructor) list()
همچنین استفاده از سازنده list() برای ایجاد لیست جدید نیز ممکن است:
مثال
از سازنده list()
برای ایجاد یک لیست استفاده میکند:
1 thislist = list(("apple", "banana", "cherry")) # note the double round-brackets
2 print(thislist)
متدهای لیست
پایتون مجموعه ای از متدهای داخلی دارد که میتوان برای کار با لیستها از آنها استفاده کرد.
متد | تعریف |
---|---|
append() | عنصری را به انتهای لیست اضافه میکند |
clear() | همهٔ عنصرهای لیست را حذف میکند |
copy() | یک کپی از لیست برمیگرداند |
count() | تعداد عنصرهای دارای مقدار خاص را برمیگرداند |
extend() | عنصرهای یک لیست را (یا هر نوع iterable را) به انتهای لیست فعلی اضافه میکند |
index() | اندیس اولین عنصر با مقدار مشخص شده را برمیگرداند |
insert() | عنصری را در مکان مشخص شده اضافه میکند |
pop() | عنصری را از مکام مشخص شده حذف میکند |
remove() | آیتمی با مقدار مشخص شده را حذف میکند |
reverse() | ترتیب لیست را معکوس میکند |
sort() | لیست را مرتب میکند |
منابع آموزشی