set در پایتون

May 2022


حتی اگر به تازگی سفر پایتون خود را شروع کرده اید، به احتمال زیاد با مجموعه set پایتون مواجه شده اید. اما آیا می دانید چگونه از آنها به طور موثر استفاده کنید؟ این مقاله قصد دارد تمام عملیات اصلی مجموعه 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های به‌دست‌آمده نامرتب هستند و مقادیر تکراری فقط یک بار در 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 پایتون برویم.

 

 


5:47:36


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

رایگان


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

دوره اول آموزش جنگو(django)

دوره اول آموزش جنگو(django)

دوره آموزش GraphQL در پایتون

دوره آموزش GraphQL در پایتون

دوره آموزش Celery

دوره آموزش Celery

ارسال نظر

تلاش میکنم سوالات شما را در کمتر از یک روز پاسخ بدم

علیرضا

May 2022

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

ارسال نظر


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

May 2022

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

آرش

March 2022

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

ارسال نظر


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

March 2022

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

علیرضا

January 2022

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

ارسال نظر


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

January 2022

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