در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

آموزش پایتون (Python) به زبان خیلی ساده قسمت 14 : مجموعه ها Sets

اگر بخواهیم یک تعریف کلی از مجموعه ها داشته باشیم می توانیم بگوییم که مجموعه ها همان دیکشنری ها هستند، فقط مقدار ندارند! یعنی شما فقط کلید تعیین می کنید برای مجموعه، مجموعه ای از مقادیر که امکان درج مقدار تکراری در آن وجود ندارد، مانند کلید ها در دیکشنری که امکان استفاده از دو کلید یکسان در دیکشنری وجود نداشت. اما چه تعریفی می توان از مجموعه ها داشت؟ برای تعریف مجموعه ها به سراغ درس ریاضی و مجموعه ها می رویم، صد در صد همه شما در درس ریاضی با نظریه مجموعه ها آشنا شدید. بر اساس تعریف ریاضی یک مجموعه دسته ای از اشیاء مختلف متمایز از هم است. برای مثال، مجموعه اعداد 1 تا 10 که به صورت زیر نمایش داده می شود:

A = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }


در زبان پایتون به دو روش می توان مجموعه ایجاد کرد، یک روش شبیه به عبارتی است که در بالا مشاهده می کنید و یک روش دیگر استفاده از تابع set می باشد. ابتدا با یک مثال با نحوه ایجاد یک مجموعه خالی آشنا می شویم:

>>> new_set=set()
>>> new_set
set()


و در کد زیر یک روش دیگر ایجاد مجموعه ها را مشاهده می کنید، در کد زیر دو مجموعه متفاوت که شامل اعداد فرد و اعداد زوج یک تا 10 هستند را تعریف می کنیم:

>>> even_nums={0,2,4,6,8}
>>> odd_nums={1,3,5,7,9}
>>> even_nums
set([8, 0, 2, 4, 6])
>>> odd_nums
set([9, 3, 1, 5, 7])


شاید فکر کنید که همانند لیست که با [] می توان یک لیست خام ایجاد کرد، برای مجموعه ها نیز همینطور است و با {} می توان یک مجموعه تهی ایجاد کرد، اما این موضوع صحیح نیست و {} یک دیکشنری خالی ایجاد می کند.

زمان تعریف مجموعه ها به این نکته دقت کنید که مجموعه ها نمی توانند شامل عبارات تکراری باشند و در صورت استفاده از مقادیر تکراری در زمان تعریف مجموعه ها، به صورت خودکار مقادیر تکراری حذف می شوند:

>>> numbers={1,2,2,3,4,5,4,6,7}
>>> numbers
set([1, 2, 3, 4, 5, 6, 7])


در زبان پایتون می توان از سایر نوع هایی که حالت لیست دارند یک مجموعه ایجاد کرد، کافیست مقدار مورد نظر از طریق پارامتر به تابع set ارسال شود:

>>> numbers=set((1,2,3,4,2,6,7))
>>> numbers
set([1, 2, 3, 4, 6, 7])
>>> chars=set('Hossein Ahmadi')
>>> chars
set(['A', ' ', 'e', 'd', 'i', 'H', 'm', 'o', 'n', 's', 'a', 'h'])
>>> names=set({'A':'Hossein Ahmadi','B':'Mohammad Nasiri'})
>>> names
set(['A', 'B'])


به مجموعه های تعریف شده در کد بالا دقت کنید، آیتم های اضافی به صورت خودکار حذف می شوند، رشته ای که برای مجموعه chars مشخص شده، بعد از تبدیل به مجموعه کاراکترهای اضافی آن حذف شده است. همچنین زمان تبدیل یک دیکشنری به مجموعه، به صورت خودکار کلید های دیکشنری به عنوان آیتم های مجموعه انتخاب می شوند.

در مجموعه ها نیز مانند لیست ها، Tuple ها و دیکشنری ها برای چک کردن وجود یک آیتم از عبارت in استفاده می شود:

>>> numbers=set((1,2,3,4,2,6,7))
>>> 1 in numbers
True
>>> 9 in numbers
False


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

>>> sets={
... 'A':{1,2,3,4,5},
... 'B':{6,7,8,9,0}
... }
>>> sets['A']
set([1, 2, 3, 4, 5])


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

>>> for key,value in sets.items():
...     print(key)
...     for item in value:
...         print(item)
...
A
1
2
3
4
5
B
0
9
6
8
7


در کد بالا، متغیر key اشاره به کلید داخل دیکشنری و متغیر value اشاره به مقدار معادل آن کلید دارد، به حلقه داخلی دقت کنید، بوسیله حلقه داخلی هر یک از آیتم های داخل مقدار کلید جاری پیمایش شده و در خروجی چاپ می شود. با توجه به مطلب گفته شده، برنامه رتبه دانشجویان را به صورت زیر و در یک فایل py می نویسیم:

students={
    'A':{'Hossein Ahmadi','Mohammad Nasiri'},
    'B':{'Jaffar Shohani','Mehdi Adeli'},
    'C':{'Ali Moghaddam','Hossein Ahmadi'}
}

for key, value in students.items():
    if 'Hossein Ahmadi' in value:
        print('Hossein Ahmadi grade:' + key)


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

D:\>py students.py
Hossein Ahmadi grade:A
Hossein Ahmadi grade:C


یکی از عملگرهایی که در مجموعه ها قابل استفاده است، عملگر & می باشد. این عملگر بین دو مجموعه قرار گرفته و خروجی آن یک مجموعه جدید است که حاوی اشتراک دو مجموعه می باشد، یعنی آیتم هایی که در هر دو مجموعه وجود دارند:

>>> {1,2,3,4} & {2,4,7,9}
set([2, 4])


علاوه بر عملگر & می توانید از تابع intersection هم استفاده کنید:

>>> {1,2,3,4}.intersection({2,4,7,9})
set([2, 4])


برای بدست آوردن اجتماع دو مجموعه از عملگر | یا تابع union استفاده می شود که هر دو اجتماع دو مجموعه را بر میگردانند:

>>> {1,2,3,4}.union({2,4,7,9})
set([1, 2, 3, 4, 7, 9])
>>> {1,2,3,4} | {2,4,7,9}
set([1, 2, 3, 4, 7, 9])


بوسیله عملگر - یا تابع difference می توان اختلاف دو مجموعه را بدست آورد، دقت کنید که این تابع تنها آیتم های مجموعه اول که در مجموعه دوم نیستند را بر میگرداند:

>>> {1,2,3,4} - {2,4,7,9}
set([1, 3])
>>> {1,2,3,4}.difference({2,4,7,9})
set([1, 3])


در صورتی که بخواهیم به صورت کامل اختلاف دو مجموعه را داشته باشیم، یعنی هم آیتم های مجموعه اول که در مجموعه دوم نیستند و هم آیتم های مجموعه دوم که در مجموعه اول نیستند از ^ یا تابع symmetric__difference استفاده می کنیم:

>>> {1,2,3,4} ^ {2,4,7,9}
set([1, 3, 7, 9])
>>> {1,2,3,4}.symmetric_difference({2,4,7,9})
set([1, 3, 7, 9])


برای اینکه چک کنیم مجموعه اول زیر مجموعه مجموعه دوم هست یا نه، از عملگر => یا تابع issubset استفاده می کنیم:

>>> {1,2,3,4,5} <= {1,2}
False
>>> {1,2,3,4,5}.issubset({1,2})
False


برعکس ای موضوع با عملگر <= یا تابع issuperset انجام می شود، یعنی مجموعه دوم زیر مجموعه اول هست یا خیر:

>>> {1,2,3,4,5} >= {1,2}
True
>>> {1,2,3,4,5}.issuperset({1,2})
True


در سه قسمتی که پشت سر گذاشتیم با لیست ها، Tuple ها، دیکشنری ها و مجموعه ها آشنا شدیم. در زبان پایتون امکان ترکیب نوع های داده پیش فرض با ساختار داده هایی که آموختیم وجود دارد تا بتوانیم نوع های پیچیده تر ایجاد کنیم. حال که با ساختار داده ها در پایتون آشنا شدیم، در قسمت بعد با تابع zip که برای پیمایش چندین لیست در یک حلقه for استفاده می شود آشنا می شویم.. ITpro باشید

نویسنده: حسین احمدی
منبع: جزیره برنامه نویسی وب سایت توسینسو
هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی است
#آموزش_python #مجموعه_ها_در_پایتون #اجتماع_مجموعه_ها_در_پایتون #آموزش_پایتون #آموزش_برنامه_نویسی_پایتون #اشتراک_مجموعه_ها_در_پایتون #set_ها_در_پایتون

عنوان
1 آموزش پایتون (Python) به زبان خیلی ساده قسمت 1 : آشنایی با پایتون رایگان
2 آموزش پایتون (Python) به زبان خیلی ساده قسمت 2: نوشتن برنامه اول رایگان
3 آموزش پایتون (Python) به زبان خیلی ساده قسمت 3 : ساختار اسکریپت رایگان
4 آموزش پایتون (Python) به زبان خیلی ساده قسمت 4 : نوع داده ها رایگان
5 آموزش پایتون (Python) به زبان خیلی ساده قسمت 5 : تبدیل نوع داده رایگان
6 آموزش پایتون (Python) به زبان خیلی ساده قسمت 6 : عملگرها رایگان
7 آموزش پایتون (Python) به زبان خیلی ساده قسمت 7 : دستور شرطی IF رایگان
8 آموزش پایتون (Python) به زبان خیلی ساده قسمت 8 : حلقه ها رایگان
9 آموزش پایتون (Python) به زبان خیلی ساده قسمت 9 : توابع عددی و عدد رایگان
10 آموزش پایتون (Python) به زبان خیلی ساده قسمت 10 : رشته و توابع آن رایگان
11 آموزش پایتون (Python) به زبان خیلی ساده قسمت 11 : لیست ها رایگان
12 آموزش پایتون (Python) به زبان خیلی ساده قسمت 12 : Tuple ها رایگان
13 آموزش پایتون (Python) به زبان خیلی ساده قسمت 13 : دیکشنری ها رایگان
14 آموزش پایتون (Python) به زبان خیلی ساده قسمت 14 : مجموعه ها Sets رایگان
15 آموزش پایتون (Python) به زبان خیلی ساده قسمت 15 : Zip و پیمایش رایگان
16 آموزش پایتون (Python) به زبان خیلی ساده قسمت 16 : Comprehension رایگان
17 آموزش پایتون (Python) به زبان خیلی ساده قسمت 17 : توابع (Function رایگان
18 آموزش پایتون (Python) به زبان خیلی ساده قسمت 18 : Closure ها رایگان
19 آموزش پایتون (Python) به زبان خیلی ساده قسمت 19 : توابع بازگشتی رایگان
20 آموزش پایتون (Python) به زبان خیلی ساده قسمت 20 : ماژول ها رایگان
21 آموزش پایتون (Python) به زبان خیلی ساده قسمت 21 : پکیج ها رایگان
22 آموزش پایتون (Python) به زبان خیلی ساده قسمت 22 : شی گرایی رایگان
زمان و قیمت کل 0″ 0
1 نظر
iman313

عالی ایول مرسی از اینکه اموزش های متنی هم میزارید خوبیش اینه که رایگانه ایول مرسی

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره تابستانه می تونی امروز ارزونتر از فردا خرید کنی ....