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