آموزش پایتون - عملگرهای عضویت

عملگرهای عضویت در پایتون

عملگرهای عضویت در پایتون به ما کمک می‌کنند تعیین کنیم آیا یک آیتم در یک شیء از نوع کانتینر (حاوی داده) وجود دارد یا به عبارت دیگر، آیا آن آیتم عضوی از شیء کانتینری مورد نظر است یا خیر.

انواع عملگرهای عضویت در پایتون

پایتون دارای دو عملگر عضویت است: in و not in. هر دو عملگر یک نتیجه بولین (True یا False) برمی‌گردانند. نتیجه عملگر in برعکس نتیجه عملگر not in است.

عملگر 'in'

عملگر "in" برای بررسی این موضوع استفاده می‌شود که آیا یک زیررشته در یک رشته بزرگ‌تر وجود دارد، آیا آیتمی در یک لیست یا تاپل موجود است، یا اینکه آیا یک زیرلیست یا زیرتاپل در داخل یک لیست یا تاپل گنجانده شده است یا خیر.

مثالی از عملگر عضویت "in" در پایتون

در مثال زیر، بررسی می‌شود که آیا زیررشته‌های مختلف متعلق به رشته var="Tut24" هستند یا خیر. پایتون کاراکترها را بر اساس مقدار یونیکد آن‌ها از هم تشخیص می‌دهد؛ بنابراین "To" با "to" یکسان نیست. همچنین توجه داشته باشید که اگر عملگر "in" مقدار True برگرداند، عملگر "not in" مقدار False را ارزیابی می‌کند.

var = "Tut24"
a = "P"
b = "tor"
c = "in"
d = "To"
print (a, "in", var, ":", a in var)
print (b, "in", var, ":", b in var)
print (c, "in", var, ":", c in var)
print (d, "in", var, ":", d in var)

این کد خروجی زیر را تولید خواهد کرد −

P in Tut24 : True
tor in Tut24 : True
in in Tut24 : True
To in Tut24 : False

عملگر 'not in'

عملگر "not in" برای بررسی عدم وجود یک دنباله با مقدار داده‌شده در اشیایی مانند رشته، لیست، تاپل و غیره استفاده می‌شود.

مثالی از عملگر عضویت "not in" در پایتون

var = "Tut24"
a = "P"
b = "tor"
c = "in"
d = "To"
print (a, "not in", var, ":", a not in var)
print (b, "not in", var, ":", b not in var)
print (c, "not in", var, ":", c not in var)
print (d, "not in", var, ":", d not in var)

این کد خروجی زیر را تولید خواهد کرد −

P not in Tut24 : False
tor not in Tut24 : False
in not in Tut24 : False
To not in Tut24 : True

عملگر عضویت در لیست‌ها و تاپل‌ها

شما می‌توانید از عملگر "in/not in" برای بررسی عضویت یک آیتم در لیست یا تاپل استفاده کنید.

var = [10,20,30,40]
a = 20
b = 10
c = a-b
d = a/2
print (a, "in", var, ":", a in var)
print (b, "not in", var, ":", b not in var)
print (c, "in", var, ":", c in var)
print (d, "not in", var, ":", d not in var)

این کد خروجی زیر را تولید خواهد کرد −

20 in [10, 20, 30, 40] : True
10 not in [10, 20, 30, 40] : False
10 in [10, 20, 30, 40] : True
10.0 not in [10, 20, 30, 40] : False

در حالت آخر، "d" یک عدد اعشاری (float) است، اما همچنان در مقایسه با عدد ۱۰ (یک int) موجود در لیست، مقدار True ارزیابی می‌شود. حتی اگر عددی در قالب‌های دیگری مانند باینری، هشت‌هشتی (octal) یا شانزده‌شانزدهی (hexadecimal) بیان شده باشد، عملگرهای عضویت مشخص می‌کنند که آیا آن عدد داخل دنباله هست یا خیر.

>>>  0x14 in [10, 20, 30, 40]
True

مثال

با این حال، اگر سعی کنید وجود دو عدد متوالی را در یک لیست یا تاپل بررسی کنید، عملگر in مقدار False برمی‌گرداند. تنها زمانی مقدار True برمی‌گرداند که خود لیست/تاپل، آن اعداد متوالی را به‌صورت یک دنباله تودرتو شامل شود.

var = (10,20,30,40)
a = 10
b = 20
print ((a,b), "in", var, ":", (a,b) in var)
var = ((10,20),30,40)
a = 10
b = 20
print ((a,b), "in", var, ":", (a,b) in var)

این کد خروجی زیر را تولید خواهد کرد −

(10, 20) in (10, 20, 30, 40) : False
(10, 20) in ((10, 20), 30, 40) : True

عملگر عضویت در مجموعه‌ها (Set)

عملگرهای عضویت پایتون به‌خوبی با اشیاء مجموعه (set) نیز کار می‌کنند.

var = {10,20,30,40}
a = 10
b = 20
print (b, "in", var, ":", b in var)
var = {(10,20),30,40}
a = 10
b = 20
print ((a,b), "in", var, ":", (a,b) in var)

این کد خروجی زیر را تولید خواهد کرد −

20 in {40, 10, 20, 30} : True
(10, 20) in {40, 30, (10, 20)} : True

عملگر عضویت در دیکشنری‌ها

استفاده از عملگرهای in و not in با اشیاء دیکشنری مجاز است. با این حال، پایتون عضویت را فقط در مجموعه کلیدها (Keys) بررسی می‌کند و نه مقادیر (Values).

var = {1:10, 2:20, 3:30}
a = 2
b = 20
print (a, "in", var, ":", a in var)
print (b, "in", var, ":", b in var)

این کد خروجی زیر را تولید خواهد کرد −

2 in {1: 10, 2: 20, 3: 30} : True
20 in {1: 10, 2: 20, 3: 30} : False

پیشرفت مطالعه: وضعیت خوانده‌شدن این درس فقط در همین مرورگر ذخیره می‌شود؛ بدون نیاز به حساب کاربری.