اذهب إلى المحتوى
  • 0

التحقق من وجود أكثر من نص في نص آخر في بايثون

Fahmy Mostafa

السؤال

لدي نص كالتالي:

string = "board, projects, resources and activities"

ولدي قائمة تحتوي على عدد من النصوص في داخلها كالتالي:

arr = ['board', 'projects', 'activities']

كيف أقوم بالتحقق من وجود أغلب النصوص (أكثر من نصف عدد القيم في القائمة) في النص الأول؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

في هذه الحالة نستخدم any التي تقوم بارجاع true اذا كان أي عنصر من عناصر القائمة موجود في النص

string = "board, projects, resources and activities"
arr = ['board', 'projects', 'activities']

if any(x in string for x in arr):
    print("Found")

اذا كنت تريد التحقق من حميع الكلمات نستخدم all التي تقوم بارجاع true اذا كان كل العناصر الموجودة في القائمة موجودة في النص  

string = "board, projects, resources and activities"
arr = ['board', 'projects', 'activities']

if all(x in string for x in arr):
  ^^^^^
    print("Found")

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

يمكننا حساب عدد مرات "وجود أحد عناصر المصفوفة ضمن السلسلة النصية" ثم نضع شرط يعيد true إن كانت عدد التكرارا أكثر من نصف طول مصفوفة العناصر

string = """board, projects, resources and activities"""

arr = ['board', 'projects', 'activities']


def check(string, arr):
    c = 0
    for i in arr:
        if i in string:
            c = c + 1
            print(i)
    print("c= " + str(c))
    return c * 2 >= len (arr)

print(check(string, arr))

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

نستخدم المعامل in لاختبار وجود substring (سلسلة جزئية) في نص text.

string = "board, projects, resources and activities"
arr = ['board', 'projects', 'activities']
#lower case نحول حالة كل الكلمات في النص الأساسي إلى حالة الأحرف الصغيرة 
string=string.lower()
# نعرف عداد يعد عدد مرات ظهور نص من القائمة في النص الأساسي
count=0
#وتختبر وجودها  arr حلقة تمر على كل كلمة في ال
for i in arr:
    if i in string:  # إذا كانت موجودة نضيف 1
        count+=1 
#True نقسم الناتج على 2 فإذا كان أكبر نطبع 
if count>=len(arr)//2:
    print(True)
رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...