Collections در پایتون
۴ نوع دادهی Collection در زبان برنامه نویسی پایتون وجود دارد:
List: یک مجموعه از دادهها که مرتب و قابل تغییر است و میتواند اعضای تکراری داشته باشد.
Tuple: یک مجموعه از دادهها که مرتب است و قابل تغییر نیست و میتواند اعضای تکراری داشته باشد.
Set: یک مجموعه از دادهها که نامرتب و بدون اندیس است و نمیتواند اعضای تکراری داشته باشد.Dictionary: یک مجموعه از دادهها که نامرتب، قابل تغییر و دارای اندیس است و نمیتواند اعضای تکراری داشته باشد.
هنگام انتخاب یک نوع از Collection باید ویژگیهای آن را بدانید. انتخاب نوع صحیح برای یک مجموعه از دادههای خاص میتواند در افزایش راندمان و امنیت مؤثر باشد.
List
یک مجموعه از دادهها که مرتب و قابل تغییر است و میتواند اعضای تکراری داشته باشد.
در پایتون List با براکتهای مربعی نوشته میشود.
# Input thislist = ["apple", "banana", "cherry"] print(thislist) # Output ['apple', 'banana', 'cherry']
دسترسی به آیتمها
شما میتوانید با استفاده از شماره اندیس به آیتمها دسترسی پیدا کنید.
مثال زیر آیتم دوم را چاپ میکند.
# Input thislist = ["apple", "banana", "cherry"] print(thislist[1]) # Output banana
اندیس منفی (Negative Indexing)
اندیس منفی به معنای شروع از انتهای List است. 1- به آخرین آیتم اشاره دارد.
مثال زیر آخرین آیتم List را چاپ میکند.
# Input thislist = ["apple", "banana", "cherry"] print(thislist[-1]) # Output cherry
محدودهای از اندیسها (Range of Indexes)
شما میتوانید مقدار محدودهای از اندیسها را با مشخصکردن مکان شروع و پایان برگردانید.
مثال زیر آیتم سوم، چهارم و پنجم را برمیگرداند.
# Input thislist = ["apple", "banana", "cherry", "orange", "kiwi", "melon", "mango"] print(thislist[2:5]) # This will return the items from position 2 to 5. # Remember that the first item is position 0, # and note that the item in position 5 is NOT included # Output ['cherry', 'orange', 'kiwi']
دقت داشته باشید در مثال بالا اندیس ۲ را شامل میشود ولی اندیس ۵ را شامل نمیشود.
همچنین آیتم اول دارای اندیس صفر است.
با وارد نکردن مقدار شروع، محدوده از آیتم اول شروع میشود.
# Input thislist = ["apple", "banana", "cherry", "orange", "kiwi", "melon", "mango"] print(thislist[:4]) # This will return the items from index 0 to index 4. # Remember that index 0 is the first item, and index 4 is the fifth item # Remember that the item in index 4 is NOT included # Output ['apple', 'banana', 'cherry', 'orange']
با وارد نکردن مقدار پایان، محدوده تا انتهای List ادامه مییابد.
# Input thislist = ["apple", "banana", "cherry", "orange", "kiwi", "melon", "mango"] print(thislist[2:]) # This will return the items from index 2 to the end. # Remember that index 0 is the first item, and index 2 is the third # Output ['apple', 'banana', 'cherry', 'orange']
محدودهای از اندیسهای منفی
اگر میخواهید جستجو را از انتهای List شروع کنید از اندیسهای منفی استفاده کنید.
مثال زیر آیتمها را از اندیس ۴- تا ۱- را برمیگرداند.
# Input thislist = ["apple", "banana", "cherry", "orange", "kiwi", "melon", "mango"] print(thislist[-4:-1]) # Negative indexing means starting from the end of the list. # This example returns the items from index -4 (included) to index -1 (excluded) # Remember that the last item has the index -1, # Output ['orange', 'kiwi', 'melon']
تغییر مقدار آیتمها
برای تغییر مقدار یک آیتم خاص به شماره اندیس آن مراجعه کنید.
مثال زیر مقدار آیتم دوم را تغییر میدهد.
# Input thislist = ["apple", "banana", "cherry"] thislist[1] = "blackcurrant" print(thislist) # Output ['apple', 'blackcurrant', 'cherry']
پیمایش List
با استفاده از حلقهی For میتوانید List را پیمایش و آیتمهای آن را چاپ کنید.
مثال زیر همهی آیتمهای List را از اول تا آخر چاپ میکند.
# Input thislist = ["apple", "banana", "cherry"] for x in thislist: print(x) # Output apple banana cherry
نوشتهی حلقهی For در پایتون را مطالعه کنید.
بررسی وجود داشتن آیتم
برای تعیین اینکه آیا یک آیتم مشخص در List وجود دارد از کلمهی کلیدی IN استفاده کنید.
مثال زیر بررسی میکند که آیا apple در List وجود دارد یا خیر.
# Input thislist = ["apple", "banana", "cherry"] if "apple" in thislist: print("Yes, 'apple' is in the fruits list") # Output Yes, 'apple' is in the fruits list
طول List
برای تعیین تعداد آیتمها در List از تابع len استفاده کنید.
مثال زیر تعداد آیتمهای List را چاپ میکند.
# Input thislist = ["apple", "banana", "cherry"] print(len(thislist)) # Output 3
اضافه کردن آیتم
برای افزودن یک آیتم به انتهای List از متد append استفاده کنید.
مثال زیر با استفاده از متد append یک آیتم به انتهای List اضافه میکند.
# Input thislist = ["apple", "banana", "cherry"] thislist.append("orange") print(thislist) # Output ['apple', 'banana', 'cherry', 'orange']
برای افزودن آیتم در یک اندیس مشخص از متد insert استفاده کنید.
# Input thislist = ["apple", "banana", "cherry"] thislist.insert(1, "orange") print(thislist) # Output ['apple', 'orange', 'banana', 'cherry']
حذف آیتم
روشهای مختلفی برای حذف آیتم از List وجود دارد.
مثال زیر از متد remove برای حذف آیتم مشخصشده استفاده میکند.
# Input thislist = ["apple", "banana", "cherry"] thislist.remove("banana") print(thislist) # Output ['apple', 'cherry']
از متد pop برای حذف آیتم با اندیس مشخص استفاده میشود. در صورتی که اندیس مشخص نشود آخرین آیتم حذف میشود.
# Input thislist = ["apple", "banana", "cherry"] thislist.pop() print(thislist) # Output ['apple', 'banana']
کلمهی کلیدی del میتواند List را بهطور کامل حذف کند.
# Input thislist = ["apple", "banana", "cherry"] del thislist print(thislist) # this will cause an error because you have succsesfully deleted "thislist". # Output Traceback (most recent call last): File "demo_list_del2.py", line 3, in <module> print(thislist) #this will cause an error because you have succsesfully deleted "thislist". NameError: name 'thislist' is not defined
با استفاده از متد clear میتوانید List را خالی کنید.
# Input thislist = ["apple", "banana", "cherry"] thislist.clear() print(thislist) # Output []
کپی کردن List
شما نمیتوانید یک List را فقط با نوشتن list1 = list2 کپی کنید. زیرا در این صورت list2 فقط یک مرجع (Refrence) برایlist1 خواهد بود و تغییرات ایجاد شده در list1 به صورت خودکار در list2 نیز انجام میشود.
روشهایی برای کپی کردن List وجود دارد که یکی از آنها استفاده از متد copy است.
مثال زیر با استفاده از متدcopy یک کپی از List تهیه میکند.
# Input thislist = ["apple", "banana", "cherry"] mylist = thislist.copy() print(mylist) # Output ['apple', 'banana', 'cherry']
راه دیگر آن استفاده از متد list است.
مثال زیر با استفاده از متدlist یک کپی از List تهیه میکند.
# Input thislist = ["apple", "banana", "cherry"] mylist = list(thislist) print(mylist) # Output ['apple', 'banana', 'cherry']
متصل کردن دو یا چند List
چندین روش برای اتصال دو یا چند List در پایتون وجود دارد.
یکی از سادهترین راهها استفاده از عملگر + است.
مثال زیر دو List را بههم متصل میکند.
# Input list1 = ["a", "b" , "c"] list2 = [1, 2, 3] list3 = list1 + list2 print(list3) # Output ['a', 'b', 'c', 1, 2, 3]
راه دیگر برای متصل کردن دو List افزودن یک به یک آیتمهای list2 به list1 است.
مثال زیر آیتمهای list2 به list1 با استفاده از متد append افزوده میشود.
# Input list1 = ["a", "b" , "c"] list2 = [1, 2, 3] for x in list2: list1.append(x) print(list1) # Output ['a', 'b', 'c', 1, 2, 3]
همچنین میتوانید از متد extend استفاده کنید. این متد آیتمها را از یک List به List دیگر اضافه میکند.
# Input list1 = ["a", "b" , "c"] list2 = [1, 2, 3] list1.extend(list2) print(list1) # Output ['a', 'b', 'c', 1, 2, 3]
تابع سازنده list
میتوان از تابع سازنده list برای ساخت یک List جدید استفاده کرد.
# Input thislist = list(("apple", "banana", "cherry")) print(thislist) # Output ['apple', 'banana', 'cherry']
منابع
w3schools.com – Python Lists
Photo by Lukas from Pexels