جلسه ۷۲: Set در پایتون

در این درس به بررسی ویژگیهای ساختمان دادهی Set
میپردازیم.
ساختار
(یک set
یا مجموعه، یکسری داده هستند که ترتیببندی ندارند) وقتی یک داده دارای index
نباشد دیگر نمیتوان به کمک index
یا ()get
به داده دسترسی پیدا کرد. این ساختمان داده شاید ساده ترین نوع در پایتون باشد. میتوان به این صورت در نظر گرفت که Set
یک کیف یا سبدی با داده های رندوم است.
ساختار های تغییر پذیر مانند لیست ها و دیکشنری ها، نمیتوانند به set
اضافه بشوند. اما اضافه کردن tuple
ها کار مفیدی نیز هست. اکنون ممکن است تعجب کنید که چرا به یک set
احتیاج داریم؟ یک Set
زمانی میتواند برای ما مفید باشد که خواسته باشیم وجود یا عدم وجود یک مقدار را بررسی کنیم. set ها به داده ها اجازه تکرار شدن را نمیدهند. یعنی اینکه اگر ما یک ساختمان داده دیگر داشته باشیم و آن را به set
تبدیل کنیم تمام اعضای تکراری حذف میشوند.
ساخت یک Set
اعضای set
در دو {} قرار میگیرند. مانند دیگر انواع ساختمان داده، طول و اندازه یک set
میتواند با استفاده از تابع ()len
بدست آید.
random_set = {"Educative", 1408, 3.142,
(True, False)}
print(random_set)
print(len(random_set)) # Length of the set
تابع سازنده ()set
تابع سازنده ()set
یک راه دیگر برای ساخت set
هاست. مزیت آن در ساخت یک set
خالی است.
empty_set = set()
print(empty_set)
random_set = set({"Educative", 1408, 3.142, (True, False)})
print(random_set)
اضافه کردن المان
برای اضافه کردن یک المان، میتوانیم از متد ()add
استفاده کنیم. برای اضافه کردن چندین آیتم میتوان از متد ()update
استفاده کرد. ورودی ()update
باید یک set
یا لیست یا tuple
یا string
باشد. اکنون طی مثال زیر المان هایی را به یک set
خالی اضافه میکنیم.
empty_set = set()
print(empty_set)
empty_set.add(1)
print(empty_set)
empty_set.update([2, 3, 4, 5, 6])
print(empty_set)
حذف المان
عملیات های discard
یا remove
میتواند برای حذف یک المان مشخص از set
ها استفاده شود.
random_set = set({"Educative", 1408, 3.142, (True, False)})
print(random_set)
random_set.discard(1408)
print(random_set)
random_set.remove((True, False))
print(random_set)
خروجی remove
در صورت عدم وجود آن آیتم Error
خواهد بود. این یعنی دقیقا بالعکس discard
حرکت روی اعضای یک set
از حلقه های for
نیز برای داده های غیر مرتب مانند set
ها میتوان استفاده کرد. اما ما در هر تکرار ما نمیدانیم که دقیقا کدام عنصر انتخاب میشود، بلکه این کار به صورت تصادفی انجام میشود. در مثال زیر، یک set
تعریف کرده ایم، که اعضای فرد آن را، به انتهای لیست تعریف شده اضافه میکنیم.
odd_list = [1, 3, 5, 7]
unordered_set = {9, 10, 11, 12, 13, 14, 15, 16, 17}
print(unordered_set)
for num in unordered_set:
if(not num % 2 == 0):
odd_list.append(num)
print(odd_list)
این ها عملیات های پایه ای بودند که میتوانستیم در set
ها انجام دهیم. مطالب بیشتر در مورد set
ها را میتوانید در سایت اصلی پایتون نیز مشاهده کنید. در درس بعدی، میبینیم که چگونه تئوری set
ها میتواند در پایتون برای set
ها استفاده شود.