"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية التحقق بكفاءة من وجود عنصر القائمة في سلسلة بايثون؟

كيفية التحقق بكفاءة من وجود عنصر القائمة في سلسلة بايثون؟

تم النشر بتاريخ 2024-11-08
تصفح:574

How to Efficiently Check for List Element Presence in a Python String?

التحقق من وجود عنصر القائمة في سلسلة في بايثون

إحدى المهام الشائعة في برمجة بايثون هي التحقق مما إذا كانت السلسلة تتضمن عنصرًا من عنصر معين قائمة. يستخدم النهج التقليدي حلقة for، كما هو موضح في الكود أدناه:

extensionsToCheck = ['.pdf', '.doc', '.xls']

for extension in extensionsToCheck:
    if extension in url_string:
        print(url_string)

رغم أنها عملية، إلا أنها قد تبدو مرهقة. تتضمن الطريقة الأكثر إيجازًا استخدام مولد مقترنًا بالدالة Any()، التي تقوم بتقييم وسيطاتها حتى مواجهة أول True:

if any(ext in url_string for ext in extensionsToCheck):
    print(url_string)

استخدام تنسيق السلسلة

بدلاً من ذلك، إذا كان ترتيب العناصر في القائمة مهمًا، فيمكن استخدام تنسيق السلسلة. على سبيل المثال:

url_string = 'sample.doc'
extensionsToCheck = ['.pdf', '.doc', '.xls']

if f'.{url_string.split(".")[-1]}' in extensionsToCheck:
    print(url_string)

هنا، تقوم طريقة .split() بفصل سلسلة عنوان URL بناءً على الفترة، ويقوم الفهرس [-1] بتحديد العنصر الأخير، الذي يمثل امتداد الملف. تقوم السلسلة f بعد ذلك بتنسيق الامتداد بالشكل الصحيح للمقارنة.

ملاحظة: استخدام Any() في هذا السياق يتحقق فقط من وجود أي عنصر من القائمة في السلسلة، بغض النظر عن موقفه. إذا كان الموقع المحدد للعنصر مهمًا، فيجب مراعاة طرق أكثر دقة، مثل التعبير العادي أو وظائف معالجة السلسلة.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3