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

سرور مجازی NVMe

پایتون: بررسی کنید که آیا متغیر یک لیست است یا خیر

0 2
زمان لازم برای مطالعه: 3 دقیقه


معرفی

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

اگر کدی داشتیم که نیاز به لیست داشت اما نکات نوع را نداشت، که اختیاری هستند، چگونه می‌توانیم در صورت استفاده از متغیر از خطا جلوگیری کنیم. نیست یک لیست؟

در این آموزش نگاهی به این خواهیم داشت چگونه بررسی کنیم که آیا یک متغیر یک لیست در پایتون است یا خیر، با استفاده از type() و isinstance() توابع، و همچنین is اپراتور:

توسعه دهندگان معمولا استفاده می کنند type() و is، اگرچه اینها می توانند در زمینه های خاصی محدود شوند، در این صورت، بهتر است از آن استفاده کنید isinstance() تابع.

بررسی کنید که آیا متغیر یک لیست با است یا خیر type()

ساخته شده در type() تابع را می توان برای برگرداندن نوع داده یک شی مورد استفاده قرار داد. بیایید یک Dictionary، Tuple و List ایجاد کنیم و از آن استفاده کنیم type() تابعی برای بررسی اینکه آیا یک متغیر a است یا خیر list یا نه:

grocery_list = ("milk", "cereal", "ice-cream")
aDict = {"username": "Daniel", "age": 27, "gender": "Male"}
aTuple = ("apple", "banana", "cashew")


print("The type of grocery_list is ", type(grocery_list))
print("The type of aDict is ", type(aDict))
print("The type of aTuple is ", type(aTuple))

این منجر به:

The type of grocery_list is  <class 'list'>
The type of aDict is  <class 'dict'>
The type of aTuple is  <class 'tuple'>

اکنون، برای تغییر جریان کد به صورت برنامه‌نویسی، بر اساس روی نتایج این تابع:

a_list = (1, 2, 3, 4, 5)


if type(a_list) == list:
    print("Variable is a list.")
else:
    print("Variable is not a list.")

این منجر به:

"Variable is a list."

بررسی کنید که آیا متغیر یک لیست با است یا خیر است اپراتور

این is عملگر برای مقایسه هویت ها در پایتون استفاده می شود. یعنی برای بررسی اینکه آیا دو شی به یک مکان در حافظه اشاره دارند یا خیر استفاده می شود.

پیشنهاد می‌کنیم بخوانید:  استفاده از متغیرهای جهانی در Node.js سلام بچه ها، در مقاله امروز می خواهم در مورد متغیرهای جهانی در Node صحبت کنم. هدف این مقاله توسعه دهندگانی است که در سطح مهارت های مبتدی تا متوسط ​​کار با Node هستند. اگر تا به حال نام متغیرهای جهانی را نشنیده اید یا با آنها کار نکرده اید، جای نگرانی نیست. این مقاله...

نتیجه ی type(variable) همیشه به همان مکان حافظه به عنوان کلاس آن اشاره می کند variable. بنابراین، اگر ما نتایج را با هم مقایسه کنیم type() تابع روی متغیر ما با list کلاس، برمی گردد True اگر ما variable یک لیست است.

بیایید نگاهی به is اپراتور:

a_list = (1, 2, 3, 4, 5)
print(type(a_list) is list)

این منجر به:

True

از آنجایی که این ممکن است نگاه کن برای برخی، بیایید یک بررسی عقلانی برای این رویکرد انجام دهیم و شناسه اشیاء موجود در حافظه را نیز با هم مقایسه کنیم:

print("Memory address of 'list' class:", id(list))
print("Memory address of 'type(a_list)':", id(type(a_list)))

اکنون، اینها باید همان عدد را برگردانند:

Memory address of 'list' class: 4363151680
Memory address of 'type(a_list)': 4363151680

توجه داشته باشید: اگر این روش را انتخاب کرده اید، باید زیرگروه ها را در نظر داشته باشید. اگر مقایسه کنید type() نتیجه هر زیر نوع لیست، با list کلاس، برمی گردد False، حتی اگر متغیر هست یک هر چند یک زیر کلاس از آن را فهرست کنید.

این کمبود از is اپراتور در رویکرد بعدی ثابت می شود – با استفاده از isinstance() تابع.

بررسی کنید که آیا متغیر یک لیست با است یا خیر instance()

این isinstance() function یکی دیگر از تابع های داخلی است که به شما امکان می دهد نوع داده یک متغیر را بررسی کنید. این تابع دو آرگومان می گیرد – متغیری که نوع آن را بررسی می کنیم و نوع مورد نظر.

این تابع همچنین زیر کلاس ها را در نظر می گیرد، بنابراین هر کدام list کلاس های فرعی نیز باز خواهند گشت True برای اینکه نمونه ای از list.

بیایید این را با یک معمولی امتحان کنیم list و الف UserList از collections چارچوب:

from collections import UserList

regular_list = (1, 2, 3, 4, 5)
user_list = (6, 7, 8, 9, 10)


if isinstance(regular_list, list):
    print("'regular_list' is a list.")
else:
    print("'regular_list' is not a list.")


if isinstance(user_list, list):
    print("'user_list' is a list.")
else:
    print("'user_list' is not a list.")

اجرای این کد نتیجه می دهد:

'regular_list' is a list.
'user_list' is a list.

نتیجه

پایتون یک زبان تایپ پویا است و گاهی اوقات به دلیل خطای کاربر، ممکن است با یک نوع داده غیرمنتظره مواجه شویم.

پیشنهاد می‌کنیم بخوانید:  تکنیک قابلیت‌های استدلال مدل‌های زبان بزرگ را بهبود می‌بخشد

در این آموزش، ما به سه روش برای بررسی اینکه آیا یک متغیر a است یا خیر، رفته ایم list در پایتون – the type() تابع، is اپراتور و isinstance() تابع.

(برچسب‌ها به ترجمه)# python



منتشر شده در 1403-01-12 07:29:06

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید