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

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

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

How to Filter a List of Strings Containing a Specific Substring in Python?

تصفية قائمة السلاسل بناءً على محتوياتها

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

استخدام فهم القائمة

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

lst = ['a', 'ab', 'abc', 'bac']
result = [k for k in lst if 'ab' in k]

يتكرر هذا الفهم من خلال كل سلسلة في القائمة الأصلية ('a'، 'ab'، 'abc'، 'bac') والتحقق إذا كان يحتوي على السلسلة الفرعية "ab". إذا كان صحيحا، فإنه يضيف السلسلة إلى القائمة الناتجة. يمنحك هذا القائمة المصفاة المطلوبة: ['ab', 'abc'].

استخدام وظيفة التصفية

هناك طريقة أخرى لتصفية السلاسل في Python وهي الاستخدام وظيفة التصفية. تأخذ هذه الوظيفة دالة مرشح وقابلة للتكرار كوسيطات وترجع مكررًا ينتج عناصر التكرار التي تلبي وظيفة المرشح. في حالتك، يمكنك استخدام الفلتر كما يلي:

lst = ['a', 'ab', 'abc', 'bac']
result = list(filter(lambda k: 'ab' in k, lst))
تأخذ وظيفة التصفية دالة مجهولة (دالة lambda) كوسيطة أولى لها، والتي تتحقق من وجود "ab" في الإدخال خيط. الوسيطة الثانية هي القائمة الأصلية. نتيجة المرشح هي مكرر، والذي يتم إرساله بعد ذلك إلى قائمة باستخدام القائمة (). مرة أخرى، يؤدي هذا إلى إنتاج قائمة ['ab', 'abc'] المطلوبة.

بينما يمكن لكل من فهم القائمة ووظيفة التصفية تحقيق التصفية المطلوبة، يُفضل فهم القائمة بشكل عام لإيجازها وسهولة قراءتها، خاصة بالنسبة لـ مهام تصفية بسيطة مثل هذه.

بيان الافراج أعيد طبع هذه المقالة على: 1729375938 في حالة وجود أي انتهاك، يرجى الاتصال بـ [email protected] لحذفها
أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3