از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
پایتون: بررسی کنید که آیا آرایه/فهرست حاوی عنصر/مقدار است
سرفصلهای مطلب
معرفی
در این آموزش نگاهی به این خواهیم داشت چگونه بررسی کنیم که آیا یک لیست حاوی عنصر یا مقدار در پایتون است یا خیر. ما از لیستی از رشته ها استفاده خواهیم کرد که شامل چند حیوان است:
animals = ('Dog', 'Cat', 'Bird', 'Fish')
بررسی کنید که آیا لیست حاوی عنصر With for Loop است یا خیر
یک روش ساده و ابتدایی برای بررسی اینکه آیا یک لیست حاوی یک عنصر است یا خیر، و بررسی اینکه آیا آیتم مورد نظر ما روی مطابق با موردی است که ما به دنبال آن هستیم. از a استفاده کنیم for
حلقه برای این:
for animal in animals:
if animal == 'Bird':
print('Chirp!')
این کد نتیجه خواهد داد:
Chirp!
بررسی کنید که آیا فهرست حاوی عنصر با است یا خیر که در اپراتور
اکنون، یک رویکرد مختصر تر، استفاده از داخلی است in
اپراتور، اما با if
بیانیه به جای for
بیانیه. هنگامی که با if
، برمی گردد True
اگر عنصری در یک دنباله وجود داشته باشد یا خیر. نحو از in
اپراتور به شکل زیر است:
element in list
با استفاده از این عملگر، میتوانیم کد قبلی خود را در یک عبارت کوتاه کنیم:
if 'Bird' in animals: print('Chirp')
این قطعه کد خروجی زیر را خواهد داشت:
Chirp
این رویکرد همان کارایی را دارد for
حلقه، از آنجایی که in
اپراتور که به این صورت استفاده می شود، را صدا می کند list.__contains__
تابع، که ذاتاً در لیست حلقه می زند – هرچند، بسیار خواناتر است.
بررسی کنید که آیا فهرست حاوی عنصر با است یا خیر نه در اپراتور
در مقابل، ما می توانیم استفاده کنیم not in
عملگر که مخالف منطقی است in
اپراتور. برمی گردد True
اگر عنصر باشد نه در یک سکانس وجود دارد
بیایید مثال کد قبلی را برای استفاده از آن بازنویسی کنیم not in
اپراتور:
if 'Bird' not in animals: print('Chirp')
اجرای این کد چیزی تولید نمی کند، زیرا Bird
در لیست ما وجود دارد.
اما اگر آن را با یک امتحان کنیم Wolf
:
if 'Wolf' not in animals: print('Howl')
این کد نتیجه می دهد:
Howl
بررسی کنید که آیا فهرست حاوی عنصر با لامبدا است یا خیر
روش دیگری که می توانید بررسی کنید که آیا عنصری وجود دارد یا خیر، فیلتر کردن همه چیز غیر از آن عنصر است، درست مانند غربال کردن ماسه و بررسی اینکه آیا پوسته ای در پایان باقی مانده است یا خیر. ساخته شده در filter()
متد یک تابع لامبدا و یک لیست را به عنوان آرگومان های خود می پذیرد. ما می توانیم در اینجا از یک تابع لامبدا برای بررسی وضعیت خود استفاده کنیم 'Bird'
رشته در animals
فهرست
سپس، نتایج را در a می پیچیم list()
از آنجا که filter()
روش a را برمی گرداند filter
موضوع، نه نتایج. اگر بسته بندی کنیم filter
شی در یک لیست، حاوی عناصر باقی مانده پس از فیلتر است:
retrieved_elements = list(filter(lambda x: 'Bird' in x, animals))
print(retrieved_elements)
این کد نتیجه می دهد:
('Bird')
اکنون، این رویکرد کارآمدترین نیست. نسبتاً کندتر از سه روش قبلی است که ما استفاده کرده ایم. را filter()
خود روش معادل تابع مولد است:
(item for item in iterable if function(item))
کند شدن عملکرد این کد، در میان چیزهای دیگر، از این واقعیت ناشی می شود که ما نتایج را در پایان به یک لیست تبدیل می کنیم و همچنین یک تابع را اجرا می کنیم. روی مورد روی هر تکرار
بررسی کنید که آیا فهرست شامل عنصر استفاده میشود یا خیر هر ()
یکی دیگر از رویکردهای داخلی عالی استفاده از آن است any()
تابع، که فقط یک تابع کمکی است که وجود دارد یا خیر هر (حداقل 1) نمونه از یک عنصر در یک لیست. برمی گردد True
یا False
مستقر روی وجود یا عدم وجود یک عنصر:
if any(element in 'Bird' for element in animals):
print('Chirp')
از آنجایی که این منجر به True
، ما print()
بیانیه نامیده می شود:
Chirp
این رویکرد همچنین یک روش کارآمد برای بررسی وجود یک عنصر است. به اندازه سه مورد اول کارآمد است.
بررسی کنید که آیا فهرست حاوی عنصر استفاده شده است یا خیر شمردن()
در نهایت می توانیم از count()
تابعی برای بررسی وجود یا نبودن یک عنصر:
list.count(element)
این تابع وقوع عنصر داده شده را در یک دنباله برمی گرداند. اگر بزرگتر از 0 باشد، می توان مطمئن بود که یک مورد معین در لیست است.
بیایید نتایج را بررسی کنیم count()
تابع:
if animals.count('Bird') > 0:
print("Chirp")
را count()
تابع ذاتاً لیست را حلقه حلقه می کند تا تعداد رخدادها را بررسی کند و این کد نتیجه می دهد:
Chirp
نتیجه
در این آموزش، ما چندین راه را برای بررسی اینکه آیا یک عنصر در یک لیست وجود دارد یا نه، بررسی کرده ایم. ما استفاده کرده ایم for
حلقه، in
و not in
اپراتورها و همچنین filter()
، any()
و count()
مواد و روش ها.
(برچسبها به ترجمه)# python
منتشر شده در 1403-01-12 02:47:04