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

 

 

# دنباله set در پایتون چیست؟

ابتدا بیایید با اصول اولیه شروع کنیم. مجموعه set یک نوع داخلی در پایتون است که دارای تعدادی ویژگی مهم است:

  • setها بدون نظم هستند به عبارت دیگر، آیتم ها به ترتیب تصادفی درج می شوند، بنابراین نمی توانید با استفاده از ایندکس‌ها به عناصر دسترسی پیدا کنید.
  • setها فقط شامل عناصر منحصر به فرد هستند. هیچ تکراری در set مجاز نیست.
  • یک set قابل تغییر است. یک set را می توان تغییر داد، و امکان افزودن و حذف موارد از یک set وجود دارد.
  • عناصر یک set باید از نوع تغییرناپذیر باشند. برای مثال رشته ها، اعداد صحیح، floatها و تاپل ها انواع قابل قبولی برای یک set هستند.
  • یک set ممکن است شامل عناصری از انواع مختلف باشد. به عنوان مثال، می توانید ترکیبی از اعداد، رشته ها و تاپل ها را در یک set قرار دهید.

 

اکنون زمان آن است که ببینیم چگونه setهای پایتون را تعریف و اصلاح کنیم.

 

 

# ساخت و تغییر set در پایتون

 

 +  ایجاد کردن یک set در پایتون

دو راه برای ایجاد یک مجموعه وجود دارد: می‌توانید از تابع set() داخلی استفاده کنید یا در عوض، مجموعه‌ای را با آکولاد تعریف کنید. در اینجا چند نمونه آورده شده است:

# Creating sets using built-in function
set_one = set((0, "one", (2, 3, 4)))
set_one

# output
{(2, 3, 4), 0, 'one'}

 

# Creating sets using built-in function
set_two = set("Game of Thrones")
set_two

# output
{' ', 'G', 'T', 'a', 'e', 'f', 'h', 'm', 'n', 'o', 'r', 's'}

 

# Creating sets using curly braces
set_three = {0, "one", (2, 3, 4)}
set_three

# output
{(2, 3, 4), 0, 'one'}

 

# Creating sets using curly braces
set_four = {"Game of Thrones"}
set_four

# output
{'Game of Thrones'}

 

آرگومان تابع set() باید یک تکرارپذیر(iterable) باشد که لیستی از اشیاء (به عنوان مثال، تاپل ها، لیست ها، رشته ها) را تولید کند. اینها در set قرار خواهند گرفت. از طرف دیگر، اگر از آکولادها استفاده می کنید، خود شی به صورت دستی قرار می گیرند. بنابراین احتمالاً تفاوت را در استفاده از این دو رویکرد متوجه شده اید:

  • برای ایجاد set_one یک تاپل به تابع set() می‌دهیم، اما اشیاء را مستقیماً در آکولادها قرار می‌دهیم تا set_three را با همان عناصر بدست آوریم.
  • تابع set() رشته‌ای را که برای ایجاد set_two ارسال می‌کنیم به‌عنوان یک تکرارپذیر در نظر می‌گیرد، و بنابراین set حاصل مجموعه‌ای از حروف این رشته است، در حالی که آکولادها رشته‌ای را به‌عنوان یک عنصر متمایز از set در نظر می‌گیرند و بنابراین ما set_four را با یک مقدار دریافت می‌کنیم.

 

همچنین، توجه داشته باشید که setهای به‌دست‌آمده نامرتب هستند و مقادیر تکراری فقط یک بار در set نمایش داده می‌شوند (مانند حرف 'e' در مثال دوم).

 

 

 +  بررسی عضویت و اندازه یک set در پایتون

می‌توانید از تابع len() برای بررسی تعداد عناصر در یک set استفاده کنید، و همچنین می‌توانید به ترتیب با استفاده از عملگرهای in, or, not وجود یک عنصر خاص در یک set را بررسی کنید.

 

# Checking the number of elements in a set
len(set_one)

# output
3

 

# Checking if an element is in a set
0 in set_one

# output
True

 

# Checking if an element is not in a set
0 not in set_one

# output
False

 

 

 +  اضافه کردن المان به یک set در پایتون

می توانید از متد add() برای درج یک عنصر در یک set استفاده کنید. اگر می خواهید چندین شی را به طور همزمان در یک set قرار دهید، از متد update() استفاده کنید. در اینجا چند نمونه آورده شده است:

# Adding a single element using add() method
my_set = {'a', 'b', 'c'}
my_set.add('d')
my_set

# output
{'a', 'b', 'c', 'd'}

 

# Adding multiple elements using update() method
my_set.update('e', 'f', 'g', 'b')
my_set

# output
{'a', 'b', 'c', 'd', 'e', 'f', 'g'}

 

# Adding multiple elements of different types (i.e., adding a tuple and another set)
my_set.update(('a', 'h'), {'c', 'i', 'j'})
my_set

# output
{'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'}

 

 

 +  حذف المان از یک set در پایتون

چند راه برای حذف موارد از set وجود دارد:

 

1. اگر می‌خواهید یک عنصر را از یک set حذف کنید، از متد remove() استفاده کنید یا اگر آیتم مربوطه در set نباشد، پیام خطا دریافت کنید.

# Using remove() to remove an item that doesn't exist in a set
my_set.remove('o')
my_set

# output
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
 in ()
      1 # Using remove() to remove an item that doesn't exist in a set
----> 2 my_set.remove('o')
      3 my_set

KeyError: 'o'

 

2. اگر می‌خواهید یک عنصر را از یک set حذف کنید، اما اگر آیتم داده شده در set نباشد، نیازی به پیغام خطا ندارید، از متد discard() استفاده کنید.

# Using discard() to remove an item that doesn't exist in a set
my_set.discard('o')
my_set

# output
{'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'}

 

3. از متد pop() برای حذف و برگرداندن یک عنصر تصادفی از یک set استفاده کنید.

# Using pop() to remove and return a random element
print(my_set.pop())
print(my_set)

# output
j
{'d', 'b', 'e', 'c', 'a', 'i', 'h', 'g', 'f'}

 

4. از متد clear() برای حذف همه موارد از یک set استفاده کنید.

# Using clear() to remove all elements from a set
my_set.clear()
my_set

# output
set()

 

اینها روش های پایه هستند که می توانید برای اصلاح یک set استفاده کنید. بیایید اکنون به سراغ برخی از عملیات ها و روش های پیشرفته set پایتون برویم.

 

 



0

Intro

10:38

رایگان

1

Variable

12:30

رایگان

2

String

19:22

رایگان

3

List

8:46

رایگان

4

While

9:6

رایگان

5

If

8:37

رایگان

6

For

6:12

رایگان

7

range

4:17

رایگان

8

break, continue, pass

9:15

رایگان

9

Function

12:32

رایگان

10

List methods

12:11

رایگان

11

Tuple

8:29

رایگان

12

Set

7:47

رایگان

13

Dictionary

9:19

رایگان

14

Module

10:40

رایگان

15

fstring

5:35

رایگان

16

format

7:34

رایگان

17

File

17:14

رایگان

18

Scope

6:25

رایگان

19

OOP

12:15

رایگان

20

Method

20:19

رایگان

21

class/instance variable

14:7

رایگان

22

class/static method

13:25

رایگان

23

Inheritance

17:6

رایگان

24

Special methods

9:50

رایگان

25

Access points

11:12

رایگان

26

property

6:54

رایگان

27

Exceptions

21:17

رایگان

28

Standard library

12:51

رایگان

29

Docstring

10:49

رایگان

30

Virtualenv

11:2

رایگان

دوره های پیشنهادی

دوره آموزش پروژه محور پایتون
دوره آموزش پروژه محور پایتون
تکمیل ضبط
امیرحسین بیگدلو
دوره آموزش سوکت نویسی (socket) در پایتون
دوره آموزش سوکت نویسی (socket) در پایتون
تکمیل ضبط
امیرحسین بیگدلو
دوره اول آموزش فلسک(Flask)
دوره اول آموزش فلسک(Flask)
تکمیل ضبط
امیرحسین بیگدلو



ارسال نظر


طاها

3 ماه قبل پاسخ به نظر

سلام. وقت بخیر .
ببخشید مطالب رو خودتون نوشتین یا از وبسایت خارجی ترجمه کردین ؟‌و اگه ترجمه کردین میشه ادرس اون سایت رو بفرمایین

ارسال نظر



امیرحسین بیگدلو

3 ماه قبل

سلام
از مستندات پایتون استفاده کردم

امیرحسین

1 سال قبل پاسخ به نظر

سلام میشه بگین ویدئو های تک قسمتی تون کجا قرار داره؟

ارسال نظر



امیرحسین بیگدلو

1 سال قبل

سلام
بالای صفحه رو اگر نگاه کنید گزینه تک قسمتی وجود داره

علیرضا

2 سال قبل پاسخ به نظر

اقا امیر ادمین عزیز میگم میشه دوره ی بزاری برای اپلیکیشن نویسی برای ویندوز البته رایگان هم که باشه چه بهتر❤❤❤❤

ارسال نظر



امیرحسین بیگدلو

2 سال قبل

سلام
متاسفانه بلد نیستم.

آرش

2 سال قبل پاسخ به نظر

روش تدریس شما خیلی خوبه. آموزش های دیگه ای دیده بودم چون از روی داکیومنت جلو نمی رفتند ناقص تدریس می کردند.
به نظر شما درآمد پایتون کار حرفه ای بیشتره یا جنگو؟ من قبلا وردپرس کار کردم و الان می خوام برم سمت پایتون. من با پیش زمینه ای که از php و web دارم با استفاده از آموزش های تخصصی شما چقدر زمان نیاز دارم که حرفه ای بشم؟

ارسال نظر



امیرحسین بیگدلو

2 سال قبل

پایتون و جنگو در کنار هم استفاده میشن و جدا نیستند.
یک سال طول میکشه

علیرضا

2 سال قبل پاسخ به نظر

سلام
سرعت tuple بیشتره یا set?
و اینکه اینجور موارد رو از کجا بفهمیم دلایلشو که کدوم چرا سریع تره ؟

ارسال نظر



امیرحسین بیگدلو

2 سال قبل

سلام
فرق زیادی ندارن.
باید داخل پایتون خیلی عمیق بشید و مستنداتش رو بخونید

مونگارد