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

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

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

How Can I Efficiently Compare a String Against Many Possible Values in Python?

مقارنة السلسلة الفعالة في بايثون

في بايثون، يمكن أن تكون مقارنة سلسلة بعدة قيم محتملة أمرًا بالغ الأهمية للتحقق من صحة الإدخال أو تنفيذ العمليات الشرطية. أحد الأساليب الشائعة هو استخدام سلسلة من عبارات if-else، ومقارنة السلسلة بكل قيمة ممكنة بشكل صريح. ومع ذلك، يمكن أن يؤدي هذا إلى تعليمات برمجية مطولة وغير فعالة، خاصة عند التعامل مع قائمة واسعة من القيم.

يتضمن الحل البديل استخدام مجموعة. المجموعة عبارة عن مجموعة من العناصر الفريدة التي تدعم اختبار العضوية السريع. من خلال إنشاء مجموعة تحتوي على سلاسل صالحة ثم التحقق من وجود سلسلة الإدخال في المجموعة، يمكنك تحقيق التحقق الفعال.

على سبيل المثال، إذا كانت السلاسل الصالحة هي:

auth ، authpriv، daemon، cron، ftp، lpr، kern، mail، news، syslog، user، uucp، local0، ... ، local7
auth, authpriv, daemon, cron, ftp, lpr, kern, mail, news, syslog, user, uucp, local0, ... , local7
يمكنك إنشاء مجموعة على النحو التالي:

accepted_strings = {'auth', 'authpriv', 'daemon', ...
auth, authpriv, daemon, cron, ftp, lpr, kern, mail, news, syslog, user, uucp, local0, ... , local7
ثم يمكنك ذلك قارن منشأة سلسلة الإدخال بالمجموعة باستخدام عامل التشغيل in:

if منشأة في Accept_strings: do_stuff()
auth, authpriv, daemon, cron, ftp, lpr, kern, mail, news, syslog, user, uucp, local0, ... , local7
التحقق من الاحتواء في مجموعة ما هو عملية ثابتة الوقت (O(1) في المتوسط)، مما يجعلها فعالة للغاية حتى مع وجود عدد كبير من السلاسل الصالحة.

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

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

Copyright© 2022 湘ICP备2022001581号-3