Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Python

تجديد لمعلوماتك عن قوائم بايثون

by
Length:ShortLanguages:
This post is part of a series called A Smooth Refresher To Python.
A Smooth Refresher on Python's Dictionaries

Arabic (العربية/عربي) translation by Mohammed Diaa (you can also view the original English article)

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

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

كفى مقدمات، هيا نبدأ! فى هذا المقال، سأراجع (أو أقدم) مفهوم مهم فى بايثون، القوائم Lists، و من المهم أن نتعلمها قبل الانتقال إلى مواضيع أكثر تقدمًا.

تخيل أنك قمت بإعداد قائمة للمهام التى ستعمل عليها اليوم. بمعنى آخر، لقد قمت باعداد قائمة مهام to-do list. لنقل أن قائمة مهامك كانت كالتالى:

  • كتابة تدوينة
  • الرد على بريد إلكترونى
  • القراءة فى كتاب

لنكتب هذه القائمة باستخدام بايثون. من الممكن أن نضع كل مهمة فى متغير كالتالى:

todo1 = 'write blog post'

todo2 = 'reply to email'

todo3 = 'read in a book'

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

قوائم بايثون لها استعمالات أكثر من أى نوع بيانات آخر. تنشأ القوائم باستخدام الأقواس المربعة [ ]. يتم ادخال قيم (محتويات) القائمة بين هذين القوسين المربعين، و يفصلوا باستخدام الفاصلة السفلية comma. إذن لنرى كيف ستبدو قائمة مهامنا باستخدام القوائم.

todo = ['write blog post', 'reply to email', 'read in a book']

رائع! لكن هذا ليس كل شىء، يمكننا فعل المزيد باستخدام القوائم، كما سنرى بعد لحظة.

الوصول للمحتويات

من السهل أن تصل لمحتويات القوائم بغض النظر عن عدد العناصر التى تحتويها القائمة. يمكن فعل هذا باستخدام الفهرس index. على سبيل المثال، قائمة مهامنا todo تتكون من ثلاثة عناصر. فى بايثون، تبدأ الفهرسة بالقيمة 0. لذا العنصر الأول فى القائمة سيحصل على المسلسل 0 (index 0)، العنصر الثانى المسلسل 1، وهكذا.

لنقل أننا نريد الوصول إلى العنصر الأخير فى القائمة todo، وهو 'read in a book'. يمكن الوصول له ببساطة كالآتى:

todo[2]

العمليات على القوائم

فى نهاية اليوم، يجب أن تكون قد أنهيت كل المهام فى قائمة مهامك أو على الأقل بعضها. لنقل أنك كتبت التدوينة. فى هذه الحالة، يجب أن تحذف هذه المهمة من القائمة. لفعل هذا الأمر، يمكنك ببساطة  أن تستخدم الدالة del. نحن نريد أن نحذف المهمة صاحبة المسلسل 0. لذا لحذف هذا العنصر من القائمة، اكتب الآتى:

del todo[0]

فى هذه الحالة، قائمة todo ستبدو كالآتى:

todo = ['reply to email', 'read in a book']

آه، لقد عرفت الآن أنك كنت تريد أن تستبدل replace مهمة read in a book بـ read 5-pages from the book لكى تكون محددًا أكثر، خاصة عندما علمت أنها عادة جيدة للانجاز getting things done (GTD). كل ما عليك فعله هو الوصول إلى المسلسل الخاص بهذا العنصر، ثم كتابة المهمة الجديدة:

todo[1] = 'read 5-pages from the book'

قائمة todo ستبدو الآن كالآتى:

['reply to email', 'read 5-pages from the book']

حسنًا، أنت تشعر بوجود بعض الوقت لمهمة جديدة، وقررت أن تضيف المهمة call the consultation service فى نهاية القائمة todo. يمكنك ببساطة استخدام الدالة ()append كالآتى:

todo.append('call the consultation service')

ستبدو القائمة todo كالآتى:

['reply to email', 'read 5-pages from the book','call the consultation service']

انتظر لحظة، لقد تذكرت قائمة مهام قديمة old_todo وقررت أن تدمجها مع قائمة المهام الحالية todo. هل يوجد طريقة للقيام بذلك، أم سنضطر إلى نسخ ولصق العناصر من القائمة القديمة إلى القائمة الحالية؟

old_todo = ['buy grocery', 'wash car', 'borrow a book from the library']

يمكنك دمج cocatenate القائمتين باستخدام المعامل + كالآتى:

new_todo = todo + old_todo

قائمة المهام الجديدة new_todo ستبدو الآن كالآتى:

['reply to email', 'read 5 pages from the book', 'call the consultation service', 'buy grocery', 'wash car', 'borrow a book from the library']

لاحظ أنك لو كتبت new_todo = old_todo + todo، ستأتى عناصر old_todo أولًا فى القائمة الجديدة.

لدينا الآن قائمة مهام لطيفة. لنرى عدد العناصر التى لدينا حتى الآن. اكتب ببساطة:

len(new_todo)

يجب أن تحصل على ستة عناصر. أعتقد أنه عدد معقول من المهام ليومك.

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

'wash car' in new_todo

إذا وُجِد العنصر 'wash car' فى القائمة، ستحصل على True كناتج.

قائمة من القوائم

القوائم -كما رأينا من قبل- نوع مرن جدًا من الكائنات. الشىء اللطيف فى القوائم أنها يمكن أن تحتوى على أى نوع من الكائنات، حتى قوائم!

على سبيل المثال، يمكنك إنشاء قائمة تبدو كالآتى:

complex_list =['Abder', '4.0', ['write blog post','grocery'],[['a','b','d','e','r'],['number','todo']]]

لاحظ أن القائمة لا تحتوى على أنواع كائنات مختلفة و قائمة فقط، ولكن على قائمة من القوائم. أليس شيئًا مدهشًا؟

حلقة for والقوائم

يمكن استخدام القوائم مع حلقة for بشكل مثير للاهتمام. سأعرض مثال واحد على هذا فى هذا القسم.

لنقل أنك لديك القائمة الآتية وأردت أن تعيد كل عنصر ثلاثة مرات:

abder = ['a','b','d','e','r']

يمكنك القيام بهذا كالآتى:

new_list = []

abder=['a','b','d','e','r']

for r in abder:

new_list.append(r * 3) * 3)

وبالتالى سيكون الناتج:

['aaa', 'bbb', 'ddd', 'eee', 'rrr']

الخلاصة

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

ما هو أكثر شىء أعجبك فى القوائم؟

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.