আমি দেখতে পাচ্ছি যে লোকেরা any
একটি তালিকায় কোনও আইটেম উপস্থিত রয়েছে কিনা তা দেখার জন্য অন্য তালিকা সংগ্রহ করতে ব্যবহার করছে, তবে কী ঠিক করার কোনও দ্রুত উপায় আছে ?:
if list.contains(myItem):
# do something
আমি দেখতে পাচ্ছি যে লোকেরা any
একটি তালিকায় কোনও আইটেম উপস্থিত রয়েছে কিনা তা দেখার জন্য অন্য তালিকা সংগ্রহ করতে ব্যবহার করছে, তবে কী ঠিক করার কোনও দ্রুত উপায় আছে ?:
if list.contains(myItem):
# do something
উত্তর:
আপনি এই বাক্য গঠনটি ব্যবহার করতে পারেন:
if myItem in list:
# do something
এছাড়াও, বিপরীত অপারেটর:
if myItem not in list:
# do something
তালিকা, টিপলস, সেট এবং ডিক্টস (চেক কী) এর জন্য এটি দুর্দান্ত কাজ করেছে fine
লক্ষ করুন যে এটি তালিকা এবং টিপলসগুলিতে একটি ও (এন) অপারেশন, তবে সেট এবং ডিক্টসে একটি ও (1) অপারেশন।
o='--skip'; o in ("--skip-ias"); # returns True !
("--skip-ias")
একটি টিপল নয়, তবে একটি স্ট্রিং (প্রথম বন্ধনী (1)
যেমন প্যারেন্যাসিসগুলি কিছুই করে না )। আপনি যদি 1-টিপল চান, আপনার একক আইটেমের পরে কমা যুক্ত করতে হবে: ("--skip-ias",)
(বা (1,)
)।
অন্যেরা যা বলেছে তা ছাড়াও, আপনি জানতে আগ্রহী হতে পারেন যে পদ্ধতিটি কী বলা in
হয় list.__contains__
, আপনি যে কোনও শ্রেণীর লেখার জন্য তার সংজ্ঞা দিতে পারেন এবং অজগরটি তার পুরোপুরি ব্যবহারে অত্যন্ত কার্যকর হতে পারেন।
বোবা ব্যবহার হতে পারে:
>>> class ContainsEverything:
def __init__(self):
return None
def __contains__(self, *elem, **k):
return True
>>> a = ContainsEverything()
>>> 3 in a
True
>>> a in a
True
>>> False in a
True
>>> False not in a
False
>>>
True
তালিকায় কোনও আইটেমের সংখ্যক ঘটনা উপস্থিত False
রয়েছে বা এটিতে কোনও ঘটনা বা কিছু না থাকলে তা পাওয়ার জন্য আমি সম্প্রতি এই এক লাইনারের সাথে এসেছি । ব্যবহার করা next(...)
এটি একটি ডিফল্ট রিটার্ন মান দেয় ( False
) এবং এর অর্থ এটি পুরো তালিকা বোধগম্যতা চালানোর চেয়ে উল্লেখযোগ্যভাবে দ্রুত চালানো উচিত।
list_does_contain = next((True for item in list_to_test if item == test_item), False)
any(item == test_item for item in list_to_test)
আমি কি মনে করি?
আইটেমটি উপস্থিত না থাকলে তালিকার পদ্ধতিটি index
ফিরে আসবে -1
এবং উপস্থিত উপস্থিত থাকলে তালিকার আইটেমের সূচি ফিরিয়ে দেবে। বিকল্পভাবে একটি if
বিবৃতিতে আপনি নিম্নলিখিতটি করতে পারেন:
if myItem in list:
#do things
নীচের বিবৃতি সহ কোনও উপাদান তালিকাতে নেই কিনা তা আপনিও পরীক্ষা করতে পারেন:
if myItem not in list:
#do things
index
পদ্ধতি ফেরত দেয় না -1 যদি উপাদান উপস্থিত নেই, এটি একটি ছোঁড়ার ValueError
ব্যতিক্রম।