القائمة الرئيسية

الصفحات

تعلم بايثون - القسم السابع

تعلم بايثون - القسم السابع
سنقوم في هذا القسم بشرح ألقوائم Lists وألصفوف tuples بالتفصيل مع الأمثلة العملية بلغة بايثون.



تعلم بايثون - القسم السابع 


القوائم Lists

أُنشئت القوائم Lists في بايثون لخزن أنواع متعددة من البيانات،وتمتلك بايثون 6 أنواع قادرة على حفظ البيانات وأشهرها القوائم Lists.
أذا أردنا أن نعًرف ماهي القائمة List فيمكننا ألقول هي مجموعة من ألعناصر أو القيم لمختلف البيانات يفصل بينها فاصلة(,) وتكون محصورة بين قوسين مربعين [].


ولنعطي مثال بسيط عليها سيكون بالشكل الآتي:
List1 = [1, 2, 3, 4]
List2 = ["Ahmed", "Ali", "Noor"]
List3 = [10, "Mohammed", 150]


وأذا أردنا التأكد أن نوع هذه المتغيرات (List1,List2,List3) هي قوائم فيمكننا عن طريق الأيعاز: 

print(type(List1))


عند تنفيذ هذا الأيعاز سيخبرنا أن الناتج هو<class 'list'>،هذا يعني أن بالفعل أنها قائمة list.


فهرسة وتقسيم القوائم Lists indexing and splitting

تتم عملية فهرسة وتقسيم القوائم List indexing and splitting في لغة بايثون بنفس الطريقة ألتي ذكرناها في القسم السابق حين تحدثنا عن موضوع الرموز Strings،حيث يتم الوصول ألى عنصر معين من خلال تسلسله في القائمة وبأستخدام القوسين المربعين[].

ويكون تسلسل العنصر الأول هو 0 وتسلسل العنصر الثاني هو 1 وهكذا لبقية العناصر في القائمة.
لنأخذ مثال بسيط يوضح عملية الفهرسة والتقسيم في القوائم وليكن بالشكل الآتي:




كما نرى في الصورة أعلاه لدينا قائمة List تتكون من 7 عناصر،يمكننا على سبيل المثال أستدعاء الرقم 0 من القائمة من خلال [List[0 وأستدعاء ألرقم 1 من خلال [List[1 وكذلك لبقية العناصر في القائمة.كما ويمكننا أستدعاء جزء من القائمة مثلاً [List=[1:4 ألذي سوف يستدعي [3,4,5] أي أنها جزء من القائمة ألتي أنشأناها بلغة بايثون.

في هذا الموضوع،تتميز لغة بايثون بميزة فريدة تميزها عن باقي لغات البرمجة الأ وهي الفهرسة العكسية،حيث بلأمكان فهرسة العناصر داخل القائمةList من اليمين الأى اليسار وحسب موضح في الصورة الآتية:



حيث يبدأ الترقيم -1 من جهة اليمين ثم يليه -2 وهكذا ألى أخر عنصر في القائمة List.

عوامل القوائم Lists Operators

العامل Operator
الوصف Description
ألتكرار Repetition
يُستخدم لتكرار العناصر داخل القائمة عدة مرات.
ألترابط Concatenation
يُستخدم لربط عناصر قائمة مع عناصر قائمة أخرى.
ألعضوية Membership
يُستخدم لتفحص عنصر ما أذا كان موجود في القائمة أم لا.
ألتعداد Iteration
يُستخدم لتعداد العناصر داخل القائمة.
الطول Length
يُستخدم لقياس طول القائمة.

مثال
List1 = [1, 2, 3, 4]
List2 = [5, 6, 7, 8]
print(List1*2)#[1, 2, 3, 4, 1, 2, 3, 4] طباعة(عمل تكرار)
print(List1+List2)#طباعة [1, 2, 3, 4, 5, 6, 7, 8](عمل ترابط)
print(3 in List1)#(عمل عضوية) طباعة true
for i in List1:#عمل تعداد وطباعة العداد i سيكون الناتج 1 2 3 4
    print(i)
List1 = [1, 2, 3, 4]
List2 = [5, 6, 7, 8]
print(List1*2)#[1, 2, 3, 4, 1, 2, 3, 4] طباعة(عمل تكرار)
print(List1+List2)#طباعة [1, 2, 3, 4, 5, 6, 7, 8](عمل ترابط)
print(3 in List1)#(عمل عضوية) طباعة true
for i in List1:#عمل تعداد وطباعة العداد i سيكون الناتج 1 2 3 4
    print(i)
print(len(List1))#قياس طول القائمة سيكون الناتج 4

أضافة العناصر ألى القائمة Adding elements to the list

تحتوي لغة بايثون على دالة تسمى ()append ألتي تقوم باضافة ألعنصر الى القائمة List،حيث يتم أضافة هذا العنصر الى نهاية القائمة.
لنأخذ بعض الأمثلة ألتي توضح كيفية أضافة عناصر ألى القائمة List:

مثال1
List = [1, 2, 3, 4]
e = List.append(5)
print(List)
out

[1, 2, 3, 4, 5]

شرح الكود

تم أنشاء قائمة في المتغير List وتم أضافة عنصر 5 أليها ومن ثم طباعة الناتج.

مثال2
List = []
for i in range(20):
    if i >=10:
        List.append(i)
print(List)

Out
 [10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
شرح الكود

تم أنشاء قائمة فارغة في متغير List في بداية الكود،ثم أنشاء عداد بسيط لتعداد 20 رقم وبداخل هذا العداد تم وضع شرط وهو أذا كان العداد أكبر أويساوي 10 سيقوم بأضافته ألى القائمة الفارغة،ومن ثم طباعة هذه القائمة.


ألصفوف Tuples

تُستخدم ألصفوف tuples في لغة بايثون لخزن أنواع متعددة من البيانات،وتشابه القوائم Lists في عملها،لكن الأختلاف ألوحيد بينهما أن العناصر المحفوظة في القوائم lists يمكن تغييرها لاحقاً،بينما ألصفوف tuples لايمكن تغيير عناصرها أبداً.
ويمكن تعريف ألصفوف على أنها مجموعة من العناصر لمختلف البيانات يفصل بينها فاصلة(,) وتكون محصورة بين قوسين هلالين().

ولنعطي مثال بسيط عليها سيكون بالشكل الآتي:
Tuple1 = (1, "Ali", 50)
Tuple2 = ("Rasool", "Ahmed", "Safa")

وأذا أردنا التأكد أن نوع هذه المتغيرات (Tuple1,Tuple2) هي صفوف فيمكننا عن طريق الأيعاز:

print(type(Tuple1))

عند تنفيذ هذا الأيعاز سيخبرنا أن الناتج هو<class 'tuple'>،هذا يعني أن بالفعل أنه صف tuple


فهرسة وتقسيم ألصفوف  Tuples indexing and splitting

تكون عملية فهرسة وتقسيم ألصفوف في لغة بايثون مشابهة لطريقتها في ألقوائم كما تم ذكرها من قبل، حيث يتم الوصول ألى عنصر معين من خلال تسلسله في الصف وبأستخدام ألقوسين المربعين [].
ويكون تسلسل العنصر الأول في ألصف tuple هو 0 وتسلسل العنصر الثاني هو 1 وهكذا لبقية العناصر في ألصف.
لنأخذ مثال بسيط يوضح عملية الفهرسة والتقسيم في ألصفوف وليكن بالشكل الآتي:

كما نرى في الصورة أعلاه لدينا صف Tuple يتكون من 7 عناصر،يمكننا على سبيل المثال أستدعاء ألرقم 0 من ألصف بأستخدام الأيعاز [Tuple[0 وأستدعاء ألرقم 1 من ألصف بأستخدام الأيعاز [Tuple[1 وهكذا لبقية ألعناصر في ألصف،ويمكننا أستدعاء جزء من ألصف مثلاً [Tuple[2:6 ألذي سوف يقوم بأستدعاء ألعناصر (5, 4, 3, 2) أي أنها جزء من ألصف ألذي أنشأناه بلغة بايثون.


عوامل ألصفوف Tuples Operators

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

ألفرق بين ألقوائم وألصفوف Lists vs. Tuples


ألقوائم Lists
ألصفوف Tuples
تكون ألقائمة محصورة بين قوسين مربعين [].
يكون ألصف محصور بين قوسين هلالين().
تكون ألعناصر داخل القائمة قابلة للتغيير.
تكون العناصر ادخل ألصف غير قابل للتغيير.
تكون القائمة ذات طول متغير.
يكون الصف ذات طول ثابت.
تكون القائمة ذات أداء عالي في الأستخدام بسبب شيوعها.
يكون الصف ذات أداء منخفض بسبب قلة شيوعه في الأستخدام.

إلى هنا ينتهي القسم السابع من سلسلة كورس (تعلم بايثون) أتمنى أن ينال حسن رضاكم ونلتقيكم في القسم الثامن أن شاء الله.




م.م رسول حسن 



هل اعجبك الموضوع :

تعليقات