স্ট্রাস্টারস পরীক্ষার জন্য স্ট্রিংয়ের একটি তালিকা সহ


181

আমি বিবৃতি এবং তুলনা করা এবং সহজভাবে একটি তালিকা ব্যবহার করলে এতগুলি ব্যবহার এড়াতে চেষ্টা করছি, তবে কীভাবে এটি ব্যবহার করবেন তা নিশ্চিত নন str.startswith:

if link.lower().startswith("js/") or link.lower().startswith("catalog/") or link.lower().startswith("script/") or link.lower().startswith("scripts/") or link.lower().startswith("katalog/"):
    # then "do something"

আমি যা হতে চাই তা হ'ল:

if link.lower().startswith() in ["js","catalog","script","scripts","katalog"]:
    # then "do something"

কোন সাহায্য প্রশংসা করা হবে।


7
এই প্রশ্নের উত্তরগুলি আমাকে কেন পাইথনকে এত ভালবাসে তা মনে করিয়ে দেয়!
ডটানকোচেন

এমনকি যদি আপনার কোনও কারণে একাধিক চেক করা প্রয়োজন হয় তবে আপনার "ব্লোয়ার") এর ফলাফলটি সংরক্ষণ করা উচিত ˋ বারবার তা করার কোনও মানে নেই।
বাচসউ

উত্তর:


344

str.startswith এর জন্য পরীক্ষার জন্য আপনাকে কয়েকটি স্ট্রিং সরবরাহ করতে দেয়:

if link.lower().startswith(("js", "catalog", "script", "katalog")):

ডক্স থেকে :

str.startswith(prefix[, start[, end]])

Trueস্ট্রিংটি দিয়ে শুরু হলে ফিরে আসুন prefix, অন্যথায় ফিরে আসুন Falseprefixসন্ধানের জন্য উপসর্গগুলির একটি দ্বিগুণও হতে পারে।

নীচে একটি বিক্ষোভ প্রদর্শন করা হচ্ছে:

>>> "abcde".startswith(("xyz", "abc"))
True
>>> prefixes = ["xyz", "abc"]
>>> "abcde".startswith(tuple(prefixes)) # You must use a tuple though
True
>>>

3
এবং যদি এটি সমর্থন করে না, আপনি যে কোনও উপায়ে anyএবং একটি জেন ​​এক্সপ দিয়ে এটি করতে পারেন ।
ব্যবহারকারী 2357112

কাউন্টারফ্যাক্টুয়াল শর্তসাপেক্ষ, "সম্ভবত ওপি একটি পুরানো সংস্করণে নেই"।
ব্যবহারকারী 2357112 মনিকা

আরে, যদি আমি এটি কোনও ফাংশনের অংশ হিসাবে ব্যবহার করি তবে কীভাবে আমি এটি তালিকার সাথে তাল মিলিয়ে ফিরিয়ে আনতে পারি?
রোস্টবিফ 6'19

@roastbeeef ˋforˋ লুপ অন্য কোনও বিকল্প নেই। ;)
বাচ্চাউ

26

এছাড়াও আপনি ব্যবহার করতে পারেন any(), map()যেমন:

if any(map(l.startswith, x)):
    pass # Do something

বা বিকল্পভাবে, একটি জেনারেটর এক্সপ্রেশন ব্যবহার করে :

if any(l.startswith(s) for s in x)
    pass # Do something

6
কারও সাথে তালিকার বোঝাপড়া ব্যবহার করবেন না; একটি জেনারেটর ব্যবহার করুন।
ডিলান ইয়ং
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.