تقنية

تجميع المتجاورين في بايثون: لماذا يتكرر المفتاح؟

ثلاث مجموعات متجاورة في BBBAABB مع تكرر مفتاح B
التجاور يحدد حدود المجموعات. [1]

تجمع itertools.groupby القيم المتجاورة، ولا تعد جميع تكراراتها. [1]

الخلاصة السريعة

تغير المفتاح يبدأ مجموعة؛ ويمكن أن يتكرر لاحقًا. [1]

  • دون دالة مفتاح، تُستعمل القيمة نفسها. [1]
  • في BBBAABB تظهر ثلاث مجموعات: BBB ثم AA ثم BB. [1]
  • احفظ list(g) قبل الانتقال إلى المجموعة التالية. [1]
  • لجمع كل مفتاح معًا، رتّب بالمفتاح نفسه؛ الترتيب يغيّر التجاور الأصلي. [1]
  • الشرح لدالة itertools.groupby، ولا يصف أدوات تجميع أخرى. [1]

اقرأ حدود المجموعات

يفصل AA امتدادي B؛ لكل امتداد مجموعة. [1]

from itertools import groupby
text = "BBBAABB"
runs = [(k, list(g)) for k, g in groupby(text)]

[1]

احفظ البيانات قبل التقدم

احفظ محتوى المجموعة بقائمة فورًا. المكرر الداخلي يشترك في المصدر؛ حفظ المكرر وحده لا يحفظ محتواه بعد التقدم. [1]

حفظ BBB بقائمة قبل الانتقال يحفظ المحتوى
المكرر مشترك؛ احفظ المحتوى قبل التقدم. [1]

متى ترتب أولًا؟

رتّب بالمفتاح نفسه لجمعه؛ واترك الترتيب الأصلي إذا أردت امتدادات التسلسل. [1]

تعيد sorted(text) قائمة مرتبة جديدة: حرفا A ثم خمسة أحرف B في مثالنا. [2]

حدد الأداة المقصودة

الشرح لدالة المكتبة القياسية، دون أدوات تجميع أخرى. [1]

المراجع

  1. Python: itertools.groupby
  2. Python: sorted
  3. موضوع تك: تطبيقات بايثون — مفردات
  4. موضوع تك: لغة البايثون — مفردات

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