يمكن أن تكون مقارنة كل عنصر قائمة مع كل عنصر آخر مهمة مفيدة عند العمل بكميات كبيرة من البيانات. في لغة برمجة بايثون ، هناك عدة طرق بسيطة لتنفيذ هذه المهمة. في هذه المقالة ، سنلقي نظرة على الطرق الأربعة الأكثر شيوعا لمقارنة كل عنصر قائمة مع بعضها البعض.
تعتمد الطريقة الأولى على استخدام اثنين متداخلين للحلقات. تتيح لك هذه الطريقة مقارنة كل عنصر من عناصر القائمة مع كل عنصر آخر ، وإجراء فحص لجميع المجموعات الممكنة. ومع ذلك ، فإنه يحتوي على تعقيد حسابي عال ولا ينصح به للعمل مع كميات كبيرة من البيانات.
وتستند الطريقة الثانية على استخدام إيترتولس.تركيبات وظيفة. تقوم هذه الوظيفة بإنشاء مجموعات من عناصر القائمة بطول معين وإعادتها كتسلسل. هذا النهج يبسط ويسرع عملية مقارنة عناصر القائمة ، لأنه يلغي مجموعات مكررة.
تعتمد الطريقة الثالثة على استخدام وظيفة التعداد المضمنة. تضيف هذه الوظيفة فهرسها إلى كل عنصر قائمة وإرجاع أزواج من القيم. هذا النهج يجعل من السهل الوصول إلى كل من العنصر نفسه ومؤشره عند المقارنة.
وتستند الطريقة الرابعة على استخدام إيترتولس.وظيفة المنتج. تنشئ هذه الوظيفة منتجا ديكارتيا للعديد من التسلسلات القابلة للتكرار وتعيدها كسلسلة من جميع التوليفات الممكنة. يتيح لك هذا الأسلوب مقارنة كل عنصر من عناصر القائمة مع كل عنصر آخر ، مع توفير جميع المجموعات الممكنة للتحليل.
- مقارنة عناصر القائمة في بايثون: 4 طرق بسيطة
- نهج تكراري
- التكرار من خلال الفهارس
- باستخدام مولد القائمة
- مكتبة إيترتولس
- سؤال وجواب
- كيف يمكنني مقارنة كل عنصر قائمة مع كل واحد في بيثون?
- كيف يمكنني استخدام الحلقات المتداخلة لمقارنة عناصر القائمة في بيثون?
- كيف يمكنني استخدام مولدات قائمة لمقارنة عناصر القائمة في بيثون?
- كيف يمكنني استخدام وظائف المقارنة لمقارنة عناصر القائمة في بيثون?
- كيف يمكنني استخدام أساليب بيثون القياسية لمقارنة عناصر القائمة?
مقارنة عناصر القائمة في بايثون: 4 طرق بسيطة
بايثون هي لغة برمجة قوية ومرنة للغاية توفر طرقا مختلفة لمقارنة العناصر في القائمة. في هذا القسم ، سنلقي نظرة على أربع طرق بسيطة لمقارنة عناصر القائمة في بايثون.
- يمكننا أيضا استخدام مجموعة لمقارنة عناصر القائمة. لا تحتوي المجموعة على عناصر مكررة ، لذلك إذا قمنا بتحويل القائمة إلى مجموعة ، فسنحصل على عناصر فريدة. على سبيل المثال:
- طباعة ("هناك عناصر مكررة في القائمة")
إذا كان لدينا كميات كبيرة من البيانات ، ثم يمكننا استخدام مكتبة نومبي لمقارنة العناصر بشكل أكثر كفاءة. توفر هذه المكتبة عددا كبيرا من الوظائف للعمل مع صفائف البيانات. على سبيل المثال:
استيراد نومبي كما نب
بلدي = نب . صفيف([1, 2, 3, 4, 5])
إذا نب.فريد من نوعه.الحجم !=بلدي.الحجم:
طباعة ("هناك عناصر مكررة في المصفوفة")
يسمح لنا هذا الرمز بالتحقق مما إذا كانت هناك عناصر مكررة في المصفوفة.
من المهم اختيار الطريقة المناسبة لمقارنة العناصر ، اعتمادا على حجم البيانات التي نعمل معها. سيساعدنا ذلك في الحصول على الأداء والكفاءة المثلى في برنامجنا.
نهج تكراري
النهج التكراري هو طريقة واحدة لمقارنة كل عنصر قائمة مع كل واحد في بايثون. وهو يتألف من استخدام الحلقات للتكرار من خلال جميع أزواج عناصر القائمة وإجراء مقارنة بينهما. والنتيجة هي مصفوفة مقارنة ، حيث تشير كل خلية إلى نتيجة المقارنة بين عناصر القائمة المقابلة.
ميزة النهج التكراري هي بساطته ووضوحه. وهي مناسبة للقوائم الصغيرة ولا تتطلب استخدام خوارزميات معقدة أو موارد الحوسبة.
Ниже приведен пример кода на Python, демонстрирующий итерационный подход:
items = [1, 2, 3, 4, 5]
comparison_matrix = []
for i in range(len(items)):
row = []
for j in range(len(items)):
if i == j:
row.append(True)
else:
row.append(items[i] == items[j])
comparison_matrix.append(row)
for row in comparison_matrix:
print(row)
В этом примере мы создаем список `comparison_matrix`, который будет содержать результаты сравнения элементов списка `items`. الخارجي` ل ' حلقة يتكرر من خلال فهارس عناصر القائمة ، والداخلية `ل` حلقة ينفذ مقارنة بين العناصر. يتم تخزين نتائج المقارنة في مصفوفة المقارنة.
| فإن نتيجة رمز تبدو شيئا من هذا القبيل: | [صحيح ، خطأ ، خطأ ، خطأ ، خطأ] |
|---|---|
| [خطأ ، صحيح ، خطأ ، خطأ ، خطأ] | [خطأ ، خطأ ، صواب ، خطأ ، خطأ] |
| [خطأ ، خطأ ، خطأ ، صحيح ، خطأ] | [خطأ ، خطأ ، خطأ ، خطأ ، صحيح] |
| كل صف من المصفوفة هو قائمة ، حيث` صحيح 'يشير إلى المساواة بين العناصر ، و` خطأ' يشير إلى عدم المساواة. | يمكن استخدام النهج التكراري لأغراض مختلفة ، مثل البحث عن التكرارات في قائمة ، أو مقارنة العناصر لتحديد الترتيب ، أو تحديد أوجه التشابه بين العناصر. هذا النهج عالمي ويمكن تطبيقه على أنواع مختلفة من البيانات. |
| التكرار من خلال الفهارس | هناك طريقة أخرى لمقارنة كل عنصر قائمة مع كل عنصر وهي استخدام الفهارس. للقيام بذلك ، يمكنك استخدام وظيفة النطاق () ، والتي تولد سلسلة من الأرقام من 0 إلى القيمة المحددة. |
| بناء الجملة: | لأني في النطاق (لين (قائمة)): |
عنصر القائمة
الفهرس
قائمة [0]
0
قائمة [1]
1
قائمة [2]
2
قائمة [3]
3
…
…
مثال الاستخدام:
قائمة = [1, 2, 3, 4, 5]
لأني في النطاق (لين (قائمة)):
إلى عن على ي في النطاق (لين (قائمة)):
إذا قائمة [أنا] = = قائمة [ي] وأنا != ي:
طباعة (و " العنصر {قائمة [أنا]} مع الفهرس {أنا} يساوي العنصر {قائمة [ي]} مع الفهرس{ي}")
نتيجة لتنفيذ هذا الرمز ، سيتم إخراج جميع أزواج العناصر المتساوية مع بعضها البعض ولكن لها فهارس مختلفة.
ملاحظة: عند استخدام الفهارس ، يجب أن تكون حريصا على عدم الخروج من القائمة عند الوصول إلى العناصر.
باستخدام مولد القائمة
- من أجل استخدام مولد القائمة ، تحتاج إلى اتباع بناء الجملة التالي:
- يتيح لك منشئ القائمة تطبيق تعبير على كل عنصر من عناصر القائمة وإنشاء قائمة جديدة بناء على نتائج هذا التعبير.
- لست = [1, 2, 3, 4]
- هنا نقوم بإنشاء قائمة " نتيجة "التي سوف تحتوي على نتائج مقارنة كل عنصر" س "مع كل عنصر" ص "من قائمة" لست". ستكون النتيجة قائمة بالقيم المنطقية التي ستوضح ما إذا كان كل زوج من العناصر متساويا.
- مكتبة إيترتولس
- فيما يلي بعض الوظائف الأساسية التي توفرها مكتبة إيترتولز:
- : ينشئ مكررا لا نهائيا يقوم بإرجاع الأرقام بدءا من القيمة المحددة;
- : ينشئ مكررا لا نهائيا يكرر العناصر بشكل لا نهائي من كائن قابل للتكرار;
- : ينشئ مكررا يكرر العنصر المحدد عددا محددا من المرات;
- : إرجاع جميع التوليفات الممكنة من العناصر ذات الطول المحدد;
- : إرجاع جميع التباديل الممكنة للعناصر;
سلسلة
: يجمع بين عدة كائنات قابلة للتكرار في واحد;
إيسليس
: إرجاع مكرر يقوم بإرجاع العدد المحدد فقط من العناصر من الكائن المتكرر;
تي
: ينشئ عدة نسخ مستقلة من المكرر;
فلترفالزائف
: ترجع فقط تلك العناصر التي ترجع الدالة المسند لها خطأ;
جروببي
: مجموعات العناصر حسب المفتاح;
زيب_أطول
: ينشئ مكررا يجمع بالتتابع عناصر من عدة كائنات متكررة ، ويملأ القيم المفقودة بالقيمة المحددة.