كيفية سلسلة القوائم في بايثون

Kyfyt Slslt Alqwaym Fy Baythwn



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

مثال 1: قوائم متسلسلة باستخدام عامل التشغيل '+'.

يمكننا استخدام عامل التشغيل '+' في Python لتسلسل القوائم. باستخدام عامل التشغيل '+'، يمكنك الانضمام إلى قائمتين أو أكثر لتكوين قائمة جديدة. عند استخدام عامل التشغيل '+' مع القوائم، يتم إنشاء قائمة جديدة ويتم نسخ عناصر القوائم الأصلية إلى القائمة الجديدة بالترتيب الذي تظهر به.

إليك مثال بسيط:







الورقة 1 = [ 1 , 2 , 3 ]

قائمة2 = [ 4 , 5 , 6 ]

result_list = القائمة 1 + القائمة 2

مطبعة ( result_list )

لدينا قائمتان في هذا الرسم التوضيحي: 'list1' و'list2'. نستخدم عامل التشغيل '+' لدمجها في قائمة واحدة. عند استخدامه مع القوائم، يقوم العامل '+' بربطها مما يعني أنه يربط عناصر القائمة الثانية بنهاية القائمة الأولى. لذلك، بعد تنفيذ 'result_list = list1 + list2'، ستحتوي 'result_list' على عناصر كل من 'list1' و'list2' بالترتيب الذي تم ربطهما به.





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





المثال 2: استخدام طريقة Extend()

يمكن إلحاق عناصر التكرار بنهاية القائمة الموجودة باستخدام طريقة الامتداد (). يقوم بتعديل القائمة الأصلية في مكانها، على عكس عامل التشغيل '+' الذي يقوم بإنشاء قائمة جديدة.

لنفترض أن لدينا قائمة بالطلاب في الفصل الدراسي، ونريد توسيع هذه القائمة عن طريق إضافة أسماء الطلاب الجدد الذين انضموا مؤخرًا باستخدام طريقة Extend(). وإليك كيف يمكنك القيام بذلك:



class_students = [ 'أليس' , 'بيلا' , 'تشارلي' ]

طلاب جدد = [ 'ديفيد' , 'إيفا' , 'آدم' ]

class_students. يمتد ( طلاب جدد )

مطبعة ( 'قائمة محدثة للطلاب:' , class_students )

في هذا المثال، تحتوي القائمة الأصلية 'class_students' على أسماء الطلاب الحاليين. تتضمن قائمة 'new_students' أسماء الطلاب الذين انضموا مؤخرًا إلى الفصل. من خلال تطبيق طريقة الامتداد () نضيف أسماء الطلاب الجدد إلى نهاية القائمة الأصلية.

مثال 3: تطبيق عامل التشغيل '+=' للتسلسل

عامل التشغيل '+=' هو اختصار لطريقة الامتداد (). فهو يعدل القائمة الموجودة في مكانها، ويجمع عناصر القائمة اليمنى في القائمة اليسرى.

لنفترض أن لدينا قائمة بالألوان المفضلة ونريد تحديثها عن طريق إضافة المزيد من الألوان باستخدام عامل التشغيل '+='.

الألوان المفضلة ل = [ 'أزرق' , 'أخضر' , 'أحمر' ]

extra_colors = [ 'أرجواني' , 'البرتقالي' , 'أصفر' ]

Favorite_colors + = extra_colors

مطبعة ( 'تم تحديث الألوان المفضلة:' , الألوان المفضلة ل )

في هذا السيناريو، نبدأ بقائمة الألوان المفضلة لدينا والتي تتمثل في 'favorite_colors'. بعد ذلك، لدينا بعض الألوان الجديدة التي نود إدراجها في قائمة 'الألوان_الإضافية'. باستخدام عامل التشغيل '+='، نقوم بدمج الألوان الجديدة مع الألوان المفضلة لدينا الحالية، وتعديل قائمة 'favorite_colors'.

بعد العملية، عندما نطبع 'ألواننا المفضلة المحدثة'، يمكننا أن نرى النتيجة التالية:

مثال 4: استخدام عامل التشغيل '*'.

يمكن استخدام عامل التشغيل '*' لنسخ القائمة. ولكن عند تطبيقها على القوائم، يمكنها تسلسلها عن طريق تكرار العناصر.

هنا مثال:

original_list = [ 1 , 2 , 3 ]

concatenated_list = القائمة الأصلية * 3

مطبعة ( concatenated_list )

في هذه الحالة، نبدأ بـ “القائمة الأصلية” التي تحتوي على العناصر [1، 2، 3]. باستخدام العامل '*'، نقوم بإنشاء قائمة جديدة وهي 'concatenated_list' التي تتكون من ثلاثة مكررات لعناصر القائمة الأصلية.

على الرغم من أن هذا الأسلوب أقل شيوعًا بالنسبة للتسلسل، إلا أنه يعرض مرونة عوامل تشغيل Python.

المثال 5: تطبيق الدالة Itertools.chain()

تعد الدالة itertools.chain()‎ جزءًا من وحدة 'itertools' وتُستخدم لربط العناصر القابلة للتكرار (مثل القوائم أو المجموعات أو الكائنات الأخرى القابلة للتكرار) في كائن 'قابل للتكرار' واحد. على عكس بعض طرق التسلسل الأخرى، لا يقوم itertools.chain() بإنشاء قائمة جديدة ولكنه ينتج مكررًا على عناصر العناصر التكرارية المدخلة.

من com.itertools يستورد سلسلة

L1 = [ 1 , 2 , 3 ]

L2 = [ 'س' , 'و' , 'مع' ]

متسلسلة_iterable = سلسلة ( L1 , L2 )

result_list = قائمة ( متسلسلة_iterable )

مطبعة ( result_list )

في المثال الموضح، لدينا قائمتان - 'L1' تحتوي على القيم الرقمية [1، 2، 3] و'L2' تحتوي على الأحرف الأبجدية ['x'، 'y'، 'z']. باستخدام الدالة itertools.chain()، نقوم بتسلسل هذه القوائم في قائمة تكرارية واحدة، ممثلة بـ 'concatenated_iterable'. يتم بعد ذلك تطبيق الدالة list() لتحويل العناصر القابلة للتكرار إلى قائمة تؤدي إلى القائمة المدمجة [1، 2، 3، 'x'، 'y'، 'z'].

المثال 6: تقسيم القائمة

من خلال توفير مجموعة من المؤشرات، يعد تقسيم القائمة إلى شرائح تقنية تتيح لنا استرداد مجموعة فرعية من القائمة. يتضمن ذلك استخدام عامل النقطتين (:) داخل الأقواس المربعة للإشارة إلى قيم البداية والتوقف، واختياريًا، الخطوة.

هنا هو رمز المثال:

actual_list = [ 1 , 2 , 3 , 4 , 5 ]

Sliced_list = actual_list [ 1 : 4 ]

مطبعة ( Sliced_list )

نبدأ الرسم التوضيحي بقائمة أصلية من الأرقام يُشار إليها باسم 'قائمة_فعلية' تحتوي على العناصر [1، 2، 3، 4، 5]. نقوم باستخراج جزء معين من القائمة من خلال استخدام تقطيع القائمة، وهي ميزة قوية في بايثون. يتم استخدام شريحة 'actual_list[1:4]' في هذه الحالة، وهي تختار العناصر من الفهرس 1 إلى الفهرس 3 (ولكن ليس من الفهرس 4). والنتيجة هي قائمة جديدة، تسمى 'sliced_list'، تحتوي على الجزء المقطع [2، 3، 4].

المثال 7: التسلسل مع الدالة Zip()

تجمع الدالة zip()‎ العناصر من عناصر متكررة متعددة، مما يؤدي إلى إنشاء أزواج أو مجموعات من العناصر المتناظرة. يتم استخدام عناصر كل تكرار في نفس الفهرس لإنشاء هذه الأزواج.

طلاب = [ 'أليس' , 'بوب' , 'تشارلي' ]

درجات = [ 85 , 92 , 78 ]

Student_grade_pairs = أَزِيز ( طلاب , درجات )

result_dict = قاموس ( Student_grade_pairs )

مطبعة ( 'أزواج الصف الطلابي:' , result_dict )

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

خاتمة

في الختام، تقدم بايثون العديد من الطرق لتسلسل القوائم، ولكل منها مميزاتها. عندما استكشفنا الطرق المختلفة، بدءًا من عامل التشغيل '+' المباشر وحتى وظيفة zip() الأكثر دقة، أصبح من الواضح أن بايثون تلبي أنماط وتفضيلات برمجة متنوعة. اعتمادًا على العمل الجاري، ستحدد عوامل مثل سهولة القراءة وكفاءة الذاكرة ونوع البيانات التي تتم معالجتها الطريقة الأفضل.