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

كيف يمكنني ضغط قوائم غير متساوية الطول من خلال تكرار القائمة الأقصر؟

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

How Can I Zip Unequal Length Lists by Repeating the Shorter One?

ضغط قوائم بأحجام مختلفة عن طريق تكرار القائمة الأقصر

عند محاولة ضغط قائمتين بأطوال غير متساوية، تسقط وظيفة الضغط المضمنة باختصار من خلال عدم تكرار القائمة الأقصر لتتناسب مع القائمة الأكبر. للتغلب على ذلك، من الضروري اتباع طرق بديلة.

الحل باستخدام itertools.cycle

توفر وظيفة itertools.cycle القدرة على التكرار عبر كائن قابل للتكرار إلى ما لا نهاية. يمكن الاستفادة من هذه الميزة لتكرار القائمة الأقصر إلى أجل غير مسمى أثناء ضغطها بالقائمة الأطول.

التنفيذ:

import itertools

A = [1, 2, 3, 4, 5, 6, 7, 8, 9]
B = ["A", "B", "C"]

zip_list = zip(A, itertools.cycle(B)) if len(A) > len(B) else zip(itertools.cycle(A), B)

في هذا الحل، نستخدم عبارة شرطية لتحديد القائمة التي يجب تكرارها. إذا كان A أطول من B، فإننا نستخدم itertools.cycle لتكرار B، وإذا كان B أطول من A، فإننا نكرر A.

ستحتوي قائمة zip_list الناتجة على مجموعات من عناصر الاقتران من A و B، مع كون B يتم تكرارها حسب الضرورة لمطابقة طول A. ويضمن هذا الأسلوب أن يتم إقران جميع العناصر من كلتا القائمتين معًا، مع تكرار القائمة الأقصر حسب الحاجة.

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

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

Copyright© 2022 湘ICP备2022001581号-3