آموزش پایتون - پیمایش مجموعه

پیمایش عناصر مجموعه (Set)

پیمایش عناصر مجموعه در پایتون به معنای تکرار روی تک‌تک عناصر یک مجموعه است. پس از آن می‌توانیم عملیات مورد نیاز را روی هر عنصر انجام دهیم. این عملیات شامل چاپ عناصر لیست، عملیات شرطی، فیلتر کردن عناصر و غیره می‌شود.

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

پیمایش عناصر مجموعه با حلقه For

حلقه for در پایتون برای پیمایش یک دنباله (مانند لیست، تاپل، دیکشنری، رشته یا range) یا هر شیء قابل پیمایش (iterable) دیگری استفاده می‌شود. این حلقه به شما اجازه می‌دهد یک بلوک کد را برای هر عنصر در دنباله به صورت تکراری اجرا کنید.

در یک حلقه for، می‌توانید با استفاده از یک متغیر به هر عنصر در دنباله دسترسی داشته باشید که به شما امکان می‌دهد عملیات یا منطق مورد نظر را بر اساس مقدار آن عنصر انجام دهید. ما می‌توانیم با تکرار روی هر عنصر در مجموعه، با استفاده از حلقه for عناصر مجموعه را پیمایش کنیم.

سنتکس

سنتکس پایه برای پیمایش عناصر در یک مجموعه با استفاده از حلقه for در پایتون به شرح زیر است −

for item in set:
   # Code block to execute

مثال

در مثال زیر، از یک حلقه for برای پیمایش روی هر عنصر در مجموعه "my_set" و بازیابی هر عنصر استفاده می‌کنیم −

# Defining a set with multiple elements
my_set = {25, 12, 10, -21, 10, 100}

# Loop through each item in the set 
for item in my_set:
   # Performing operations on each element
   print("Item:", item)

خروجی

خروجی کد بالا به شرح زیر است −

Item: 100
Item: 25
Item: 10
Item: -21
Item: 12

پیمایش عناصر مجموعه با حلقه While

حلقه while در پایتون برای اجرای تکراری یک بلوک کد تا زمانی که یک شرط مشخص "True" باشد استفاده می‌شود.

می‌توانیم با تبدیل مجموعه به یک ایتراتور (iterator) و سپس تکرار روی هر عنصر تا زمانی که ایتراتور به پایان مجموعه برسد، عناصر مجموعه را با استفاده از حلقه while پیمایش کنیم.

یک ایتراتور (Iterator) شیئی است که به شما امکان می‌دهد در تمام عناصر یک مجموعه ( مانند لیست، تاپل، مجموعه یا دیکشنری) عنصر به عنصر پیمایش کنید.

مثال

در مثال زیر، ما در حال پیمایش یک مجموعه با استفاده از یک ایتراتور و یک حلقه while هستیم. بلوک "try" هر عنصر را بازیابی کرده و چاپ می‌کند، در حالی که بلوک "except StopIteration" زمانی که عنصر دیگری برای دریافت وجود نداشته باشد، حلقه را متوقف می‌کند −

# Defining a set with multiple elements
my_set = {1, 2, 3, 4, 5}

# Converting the set to an iterator
set_iterator = iter(my_set)

# Looping through each item in the set using a while loop
while True:
   try:
      # Getting the next item from the iterator
      item = next(set_iterator)
      # Performing operations on each element
      print("Item:", item)
   except StopIteration:
      # If StopIteration is raised, break from the loop
      break

خروجی

خروجی کد بالا به صورت زیر است −

Item: 1
Item: 2
Item: 3
Item: 4
Item: 5

پیمایش با استفاده از درک مجموعه (Set Comprehension)

درک مجموعه (Set Comprehension) در پایتون روشی فشرده برای ایجاد مجموعه‌ها با پیمایش روی یک شیء قابل پیمایش و در صورت تمایل اعمال یک شرط است. این روش برای تولید مجموعه‌ها با استفاده از سنتکسی شبیه به درک لیست (List Comprehension) استفاده می‌شود اما نتیجه آن یک مجموعه خواهد بود که یکتا و غیرترتیبی بودن تمام عناصر را تضمین می‌کند.

می‌توانیم با تعریف یک عبارت Set Comprehension داخل آکولد {} و مشخص کردن منطق پیمایش و شرط در داخل آن عبارت، پیمایش را انجام دهیم. سنتکس به شرح زیر است −

result_set = {expression for item in iterable if condition}

که در آن،

  • expression − عبارتی است که برای هر عنصر در شیء قابل پیمایش ارزیابی می‌شود.

  • item − متغیری است که نشان‌دهنده هر عنصر در شیء قابل پیمایش است.

  • iterable − مجموعه‌ای است که قرار است روی آن پیمایش انجام شود (مانند لیست، تاپل، مجموعه).

  • condition − شرطی اختیاری برای فیلتر کردن عناصری است که در مجموعه نهایی قرار می‌گیرند.

مثال

در این مثال، از Set Comprehension برای تولید مجموعه‌ای شامل توان دوم اعداد زوج از لیست اصلی "numbers" استفاده می‌کنیم −

# Original list
numbers = [1, 2, 3, 4, 5]

# Set comprehension to create a set of squares of even numbers
squares_of_evens = {x**2 for x in numbers if x % 2 == 0}
# Print the resulting set
print(squares_of_evens)

خروجی

خروجی مطابق شکل زیر به دست می‌آید −

{16, 4}

پیمایش در یک مجموعه با استفاده از تابع ()enumerate

تابع ()enumerate در پایتون برای پیمایش روی یک شیء قابل پیمایش و هم‌زمان ارائه اندیس هر عنصر استفاده می‌شود.

می‌توانیم با تبدیل مجموعه به یک لیست و سپس اعمال ()enumerate برای پیمایش روی عناصر به همراه موقعیت اندیس آن‌ها، در یک مجموعه پیمایش کنیم. سنتکس به شرح زیر است −

for index, item in enumerate(list(my_set)):
   # Your code here

مثال

در مثال زیر، ابتدا یک مجموعه را به یک لیست تبدیل می‌کنیم. سپس با استفاده از یک حلقه for همراه با تابع ()enumerate روی لیست پیمایش کرده و هر عنصر را به همراه اندیس آن بازیابی می‌کنیم −

# Converting the set into a list
my_set = {1, 2, 3, 4, 5}
set_list = list(my_set)

# Iterating through the list 
for index, item in enumerate(set_list):
   print("Index:", index, "Item:", item)

خروجی

خروجی تولید شده به صورت زیر است −

Index: 0 Item: 1
Index: 1 Item: 2
Index: 2 Item: 3
Index: 3 Item: 4
Index: 4 Item: 5

پیمایش عناصر مجموعه با متد ()add

متد ()add در پایتون برای اضافه کردن یک عنصر تنها به یک مجموعه استفاده می‌شود. اگر عنصر از قبل در مجموعه وجود داشته باشد، مجموعه بدون تغییر باقی می‌ماند.

ما نمی‌توانیم مستقیماً با استفاده از متد ()add عناصر مجموعه را پیمایش کنیم، زیرا ()add مشخصاً برای اضافه کردن عناصر منفرد به یک مجموعه استفاده می‌شود، نه برای پیمایش روی عناصر موجود.

برای پیمایش عناصر مجموعه، از روش‌هایی مانند حلقه for یا Set Comprehension استفاده می‌کنیم.

مثال

در این مثال، ما روی یک دنباله از اعداد پیمایش می‌کنیم و هر عدد را با استفاده از متد ()add به مجموعه اضافه می‌کنیم. حلقه روی عناصر موجود پیمایش می‌کند، در حالی که متد ()add عناصر جدید را به مجموعه اضافه می‌کند −

# Creating an empty set
my_set = set()  

# Looping through a sequence and adding elements to the set
for i in range(5):
   my_set.add(i)
print(my_set)  

این کد خروجی زیر را تولید خواهد کرد −

{0, 1, 2, 3, 4}

پیشرفت مطالعه: وضعیت خوانده‌شدن این درس فقط در همین مرورگر ذخیره می‌شود؛ بدون نیاز به حساب کاربری.