درخواست های ارتباط
جستجو
    لیست دوستان من
    صندوق پیام
    همه را دیدم
    • در حال دریافت لیست پیام ها
    صندوق پیام
    رویدادها
    همه را دیدم
    • در حال دریافت لیست رویدادها
    همه رویدادهای من

    تا 75 درصد تخفیف ویژه شب یلدا بر روی کلیه محصولات وب سایت توسینسو فقط تا 30 آذر

    مانده تا پایان تخفیف ها

    تخفیف های وب سایت
    همه تخفیف ها

    عضویت در

    کانال تلگرام

    توسینسو

    اطلاعات مطلب
      مدرس/نویسنده
      حسین احمدی
      امتیاز: 212242
      رتبه:3
      342
      253
      403
      2719
      حسین احمدی ، بنیانگذار TOSINSO ، توسعه دهنده وب و برنامه نویس ، بیش از 12 سال سابقه فعالیت حرفه ای در سطح کلان ، مشاور ، مدیر پروژه و مدرس نهادهای مالی و اعتباری ، تخصص در پلتفرم دات نت و زبان سی شارپ ، طراحی و توسعه وب ، امنیت نرم افزار ، تحلیل سیستم های اطلاعاتی و داده کاوی ... پروفایل کاربر
      دوره های مرتبط
      دوره های توسینسو دوره آموزشی برنامه نویسی اندروید با زبان جاوا به زبان ساده
      دوره آموزشی برنامه نویسی اندروید با زبان جاوا به زبان ساده
      مدرس: مهدی عادلی فر
      این دوره را در 27 قسط خریداری کنید
      دوره آموزشی برنامه نویسی به زبان پرل بصورت پروژه محور
      دوره آموزشی برنامه نویسی به زبان پرل بصورت پروژه محور
      مدرس: ایمان جوادی
      این دوره را در 13 قسط خریداری کنید
      دوره آموزشی مقدماتی برنامه نویسی جاوا به زبان ساده
      دوره آموزشی مقدماتی برنامه نویسی جاوا به زبان ساده
      مدرس: مهدی عادلی فر
      این دوره را در 17 قسط خریداری کنید
      دوره آموزشی برنامه نویسی پیشرفته زبان سی شارپ
      دوره آموزشی برنامه نویسی پیشرفته زبان سی شارپ
      مدرس: حسین احمدی
      این دوره را در 78 قسط خریداری کنید
      دوره آموزشی طراحی رابط کاربری با JavaFX
      دوره آموزشی طراحی رابط کاربری با JavaFX
      مدرس: حسام رسولیان
      این دوره را در 13 قسط خریداری کنید
      دوره متوسطه برنامه نویسی به زبان جاوا به زبان ساده
      دوره متوسطه برنامه نویسی به زبان جاوا به زبان ساده
      مدرس: مهدی عادلی فر
      این دوره را در 18 قسط خریداری کنید
      ساخت و مدیریت ربات تلگرام از صفر با زبان سی شارپ
      ساخت و مدیریت ربات تلگرام از صفر با زبان سی شارپ
      مدرس: مهدی عادلی فر
      این دوره را در 2 قسط خریداری کنید
      دوره آموزشی ساخت ربات تلگرام
      دوره آموزشی ساخت ربات تلگرام
      مدرس: کاظم تقندیکی
      این دوره را در 8 قسط خریداری کنید
      دوره آموزشی Exploit نویسی به زبان Perl
      دوره آموزشی Exploit نویسی به زبان Perl
      مدرس: ایمان جوادی
      این دوره را در 7 قسط خریداری کنید
      دوره آموزشی پردازش متن با زبان برنامه نویسی پایتون
      دوره آموزشی پردازش متن با زبان برنامه نویسی پایتون
      مدرس: کاظم تقندیکی
      این دوره را در 20 قسط خریداری کنید
      دوره آموزشی اسکریپت نویسی Batch یا Batch Scripting در ویندوز به زبان ساده
      دوره آموزشی اسکریپت نویسی Batch یا Batch Scripting در ویندوز به زبان ساده
      مدرس: حسین احمدی
      این دوره را در 11 قسط خریداری کنید
      دوره آموزشی مقدماتی برنامه نویسی به زبان سی شارپ
      دوره آموزشی مقدماتی برنامه نویسی به زبان سی شارپ
      مدرس: حسین احمدی
      این دوره را در 17 قسط خریداری کنید
      دوره آموزشی برنامه نویسی مقدماتی پایتون به زبان ساده
      دوره آموزشی برنامه نویسی مقدماتی پایتون به زبان ساده
      مدرس: حسین احمدی
      این دوره را در 23 قسط خریداری کنید
      دوره تخصصی آموزش متن کاوی با ابزار NLTK
      دوره تخصصی آموزش متن کاوی با ابزار NLTK
      مدرس: کاظم تقندیکی
      این دوره را در 11 قسط خریداری کنید
      دوره آموزشی برنامه نویسی WPF در ویژوال استودیو
      دوره آموزشی برنامه نویسی WPF در ویژوال استودیو
      مدرس: امیر حسین فضلیخانی
      این دوره را در 12 قسط خریداری کنید

      آموزش زبان پایتون :: قسمت چهاردهم - مجموعه ها (Sets)

      تاریخ 22 ماه قبل
      نظرات 1
      بازدیدها 1193
      اگر بخواهیم یک تعریف کلی از مجموعه ها داشته باشیم می توانیم بگوییم که مجموعه ها همان دیکشنری ها هستند، فقط مقدار ندارند! یعنی شما فقط کلید تعیین می کنید برای مجموعه، مجموعه ای از مقادیر که امکان درج مقدار تکراری در آن وجود ندارد، مانند کلید ها در دیکشنری که امکان استفاده از دو کلید یکسان در دیکشنری وجود نداشت. اما چه تعریفی می توان از مجموعه ها داشت؟ برای تعریف مجموعه ها به سراغ درس ریاضی و مجموعه ها می رویم، صد در صد همه شما در درس ریاضی با نظریه مجموعه ها آشنا شدید. بر اساس تعریف ریاضی یک مجموعه دسته ای از اشیاء مختلف متمایز از هم است. برای مثال، مجموعه اعداد 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 باشید

      نویسنده: حسین احمدی
      منبع: جزیره برنامه نویسی وب سایت توسینسو
      هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی است
      برچسب ها
      ردیفعنوان
      1آموزش زبان پایتون :: قسمت اول - مقدمات و آشنایی اولیه با پایتون
      2آموزش زبان پایتون :: قسمت دوم - دانلود پایتون و نوشتن اولین برنامه
      3آموزش زبان پایتون :: قسمت سوم - آشنایی با ساختار اسکریپت های پایتون
      4آموزش زبان پایتون :: قسمت چهارم - نوع های داده در زبان پایتون
      5آموزش زبان پایتون :: قسمت پنجم - تبدیل نوع ها به یکدیگر
      6آموزش زبان پایتون :: قسمت ششم - عملگرها در پایتون
      7آموزش زبان پایتون :: قسمت هفتم - دستور if
      8آموزش زبان پایتون :: قسمت هشتم - حلقه ها
      9آموزش زبان پایتون :: قسمت نهم - نوع های عددی و توابع کار با اعداد
      10آموزش زبان پایتون :: قسمت دهم - کار با رشته ها و توابع مرتبط
      11آموزش زبان پایتون :: قسمت یازدهم - لیست ها
      12آموزش زبان پایتون :: قسمت دوازدهم - Tuple ها
      13آموزش زبان پایتون :: قسمت سیزدهم - دیکشنری ها (Dictionaries)
      14آموزش زبان پایتون :: قسمت چهاردهم - مجموعه ها (Sets)
      15آموزش زبان پایتون :: قسمت پانزدهم - تابع zip و پیمایش چند لیست به صورت همزمان
      16آموزش زبان پایتون :: قسمت پانزدهم - روش Comprehension برای ایجاد لیست ها، دیکشنری ها و مجموعه ها
      17آموزش زبان پایتون :: قسمت شانزدهم - توابع (Functions)
      18آموزش زبان پایتون :: قسمت هفدهم - Closure ها
      19آموزش زبان پایتون :: قسمت هجدهم - توابع بازگشتی (Recursive Functions)
      20آموزش زبان پایتون :: قسمت نوزدهم - ماژول ها (Modules)
      21آموزش زبان پایتون :: قسمت بیستم - پکیج ها (Packages)
      22برنامه نویسی شئ گرا در پایتون :: مقدمات و آشنایی با کلاس و شئ
      دورهمجموعه کل دوره
      مطالب مرتبط

      در حال دریافت اطلاعات

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

      برای ارسال نظر ابتدا به سایت وارد شوید