آموزش پایتون - اشیاء نمایشی

متدهای items()، keys() و values() از کلاس dict، اشیاء نمایشی (view objects) را برمی‌گردانند. این نماها هر زمان که تغییری در محتوای شیء دیکشنری منبع آن‌ها رخ دهد، به صورت پویا به‌روزرسانی می‌شوند.

متد items()

متد items() یک شیء نمایشی از نوع dict_items برمی‌گرداند. این شیء شامل یک لیست از تاپل‌هاست که هر تاپل از جفت‌های کلید و مقدار مربوطه تشکیل شده است.

سنتکس

سنتکس متد items() به صورت زیر است −

Obj = dict.items()

مقدار بازگشتی

متد items() یک شیء dict_items برمی‌گرداند که یک نمای پویا از تاپل‌های (کلید، مقدار) است.

مثال

در مثال زیر، ابتدا با استفاده از متد items() شیء dict_items را به دست می‌آوریم و بررسی می‌کنیم که چگونه با به‌روزرسانی شیء دیکشنری، این شیء نیز به صورت پویا به‌روزرسانی می‌شود.

numbers = {10:"Ten", 20:"Twenty", 30:"Thirty",40:"Forty"}
obj = numbers.items()
print ('type of obj: ', type(obj))
print (obj)
print ("update numbers dictionary")
numbers.update({50:"Fifty"})
print ("View automatically updated")
print (obj)

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

type of obj: <class 'dict_items'>
dict_items([(10, 'Ten'), (20, 'Twenty'), (30, 'Thirty'), (40, 'Forty')])
update numbers dictionary
View automatically updated
dict_items([(10, 'Ten'), (20, 'Twenty'), (30, 'Thirty'), (40, 'Forty'), (50, 'Fifty')])

متد keys()

متد keys() از کلاس dict یک شیء dict_keys برمی‌گرداند که لیستی از تمام کلیدهای تعریف‌شده در دیکشنری است. این یک شیء نمایشی است، چرا که با انجام هر گونه عملیات به‌روزرسانی روی شیء دیکشنری، به طور خودکار به‌روزرسانی می‌شود.

سنتکس

سنتکس متد keys() به صورت زیر است −

Obj = dict.keys()

مقدار بازگشتی

متد keys() یک شیء dict_keys برمی‌گرداند که نمایی از کلیدهای موجود در دیکشنری است.

مثال

در این مثال، یک دیکشنری به نام "numbers" با کلیدهای صحیح و مقادیر رشته‌ای مربوط به آن‌ها می‌سازیم. سپس با استفاده از متد keys()، یک شیء نمایشی "obj" از کلیدها به دست می‌آوریم و نوع و محتوای آن را بازیابی می‌کنیم −

numbers = {10:"Ten", 20:"Twenty", 30:"Thirty",40:"Forty"}
obj = numbers.keys()
print ('type of obj: ', type(obj))
print (obj)
print ("update numbers dictionary")
numbers.update({50:"Fifty"})
print ("View automatically updated")
print (obj)

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

type of obj: <class 'dict_keys'>
dict_keys([10, 20, 30, 40])
update numbers dictionary
View automatically updated
dict_keys([10, 20, 30, 40, 50])

متد values()

متد values() نمایی از تمام مقادیر موجود در دیکشنری را برمی‌گرداند. این شیء از نوع dict_values است که به طور خودکار به‌روزرسانی می‌شود.

سنتکس

سنتکس متد values() به صورت زیر است −

Obj = dict.values()

مقدار بازگشتی

متد values() یک نمای dict_values از تمام مقادیر موجود در دیکشنری برمی‌گرداند.

مثال

در مثال زیر، با استفاده از متد values() از دیکشنری "numbers"، یک شیء نمایشی "obj" از مقادیر به دست می‌آوریم −

numbers = {10:"Ten", 20:"Twenty", 30:"Thirty",40:"Forty"}
obj = numbers.values()
print ('type of obj: ', type(obj))
print (obj)
print ("update numbers dictionary")
numbers.update({50:"Fifty"})
print ("View automatically updated")
print (obj)

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

type of obj: <class 'dict_values'>
dict_values(['Ten', 'Twenty', 'Thirty', 'Forty'])
update numbers dictionary
View automatically updated
dict_values(['Ten', 'Twenty', 'Thirty', 'Forty', 'Fifty'])

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