আমি দেখতে পাচ্ছি যে লোকেরা 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ব্যতিক্রম।