مضى على الشبكة و يوم من العطاء.

الدرس التاسع: القوائم (Lists) - الجزء الثاني

RTH

Developer

السمعة:

بسم الله الرحمن الرحيم
اللهم علّمنا ما ينفعنا وانفعنا بما علّمتنا إنك أنت العليم الحكيم

سنكمل في هذا الدرس الحديث عن القوائم كما بدأنا في الدرس السابق.
استخدام التكرارات (Loop) في القوائم

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

......
Python:
numbers = [10, 20, 30, 40, 50]
total_sum = 0
for number in numbers:
    total_sum += number
print("The sum of the items in the list is:", total_sum)

لدينا قائمة مكونة من 5 عناصر ونريد جمعها إلى بعضها. بدأنا بتعريف متغير باسم total_sum بقيمة ابتدائية صفر. ثم أنشأنها حلقة للمرور على كافة العناصر الموجودة في القائمة وفي كل مرة يقوم بجمع العنصر إلى الـ total_sum . وفي نهاية الحلقة تكون قد جُمعت كافة الأرقام ثم قمنا بطباعة الناتج.

Python:
The sum of the items in the list is: 150

fa.webp
استخدام الدالة Range في القوائم

إذا كنت تريد إنشاء قائمة مكونه من عدد كبير من الأرقام المتتالية يمكنك استخدام الدالة range بدلًا من كتابة جميع الأرقام بداخل القائمة عن طريق استخدام الدالى list
كما في المثال التالي:

Python:
numbers = list(range(1, 50))
print(numbers)

تظهر القائمة بالشكل التالي:

Python:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49]

يمكننا أيضًا استخدام الدالة range لإخبار بايثون بتخطي أرقام معينة داخل القائمة. عن طريق إضافة مقدار الخطوة بين الأرقام إلى الدالة range . كما في المثال التالي:

Python:
even_numbers = list(range(2, 11, 2))
print(even_numbers)

ويكون الناتج كالتالي:

Python:
[2, 4, 6, 8, 10]

لإنشاء قائمة من الأرقام المربعة يمكننا أيضًا استخدام الدالة range في ذلك . لنفرض أنك تريد إنشاء قائمة بأول 10 أرقام مربعة سنقوم بالخطوات التالي:

1- سنقوم بإنشاء قائمة فارغة باسم sequares
2- سنستخدم الحلقة for لتكرار العمليات على كل قيمة من 1 إلى 10 باستخدام الـ range
3- بداخل الحلقة سنقوم برفع القيمة إلى الأس 2 عن طريق استخدام (2**) ثم سنقوم بتخزين هذه القيمة داخل متغير اسمه sequare
4- سنضيف قيمة المتغير sequare إلى القائمة sequares
5- سنقوم بطباعة القائمة.

Python:
squares = []
for value in range(1, 11):
    square = value ** 2
    squares.append(square)
print(squares)

سيظهر لنا الناتج بهذا الشكل:

Python:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

fa.webp
إحصائيات بسيطة باستخدام القوائم

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

1- min
2- max

كما في المثال التالي:

Python:
digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
min(digits)
max(digits)

ويكون الناتج لهذه الدوال كما يلي:

Python:
0
9

ولإيجاد مجموع الأرقام في القائمة يمكننا استخدام الدالة sum كما في المثال التالي:

Python:
digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
sum(digits)

ويكون الناتج كالتالي:

Python:
45

لتحديد عدد مرات تكرار عنصر معين داخل قائمة يمكن استخدام الدالة count كما في المثال التالي:

Python:
numbers = [1, 2, 3, 4, 3, 2, 1, 3, 3, 5]

count_of_three = numbers.count(3)

print("The number of times the number 3 appears is:", count_of_three)

ويكون الناتج بهذا الشكل:

Python:
The number of times the number 3 appears is: 4

fa.webp
العمل على جزء من عناصر القائمة

يمكن العمل مع مجموعة محددة من عناصر القائمة بدلًا من العمل على القائمة بأكملها عن طريق ما يسمى بالتقسيم ( Slicing )

لإجراء تقسيم على قائمة يجب تحديد موقع العنصر الأول (index) وموقع العنصر الأخير للعناصر التي نريد العمل عليها من ضمن القائمة. كما في المثال التالي:

Python:
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[0:3])
print(players[:3])
print(players[2:])
print(players[:])
[SIZE=5]print(players[-3:])[/SIZE]

سنقوم الآن يتوضيح كل جملة طباعة في المثال السابق:

print(players[0:3]): هذا الأمر يطبع أول ثلاثة عناصر في القائمة (العناصر ذات المواقع 0، 1، 2)
print(players[:3]): في هذا الأمر تم حذف الموقع الأول، فيبدأ التقسيم من بداية القائمة حتى الموقع الرابع (العنصر ذو الموقع 3).
print(players[2:])
: في هذا الأمر تم حذف الموقع الثاني ، فيبدأ التقسيم من الموقع 2 حتى نهاية القائمة.
print(players[:]): في هذا الأمر تم حذف الموقعين الأول والثاني ، فيقوم بطباعة كافة العناصر.
print(players[-3:]): هنا استخدمنا الموقع السالب -3 لاستخراج العناصر الثلاثة الأخيرة من القائمة.

ويكون الناتج كما يلي:

Python:
['charles', 'martina', 'michael']
['charles', 'martina', 'michael']
['michael', 'florence', 'eli']
['charles', 'martina', 'michael', 'florence', 'eli']
['michael', 'florence', 'eli']

يمكننا أيضًا استخدام التقسيم مع حلقة for , إذا كنت ترغب في تكرار جزء معين من القائمة. كما في المثال التالي:

Python:
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print("Here are the first three players on my team:")

for player in players[:3]:
    print(player.title())

ويكون الناتج كما يلي:
Python:
Here are the first three players on my team:
Charles
Martina
Michael

fa.webp
نسخ القوائم

في بايثون، يمكنك نسخ قائمة (list) بحيث تبدأ بقائمة موجودة بالفعل ثم تنشئ قائمة جديدة بناءً عليها. ولكن عند نسخ قائمة، من المهم التأكد من أنك تقوم بنسخها بشكل صحيح للحصول على قائمتين منفصلتين تماماً، بدلاً من الحصول على قائمة واحدة مشتركة بين المتغيرات.


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

Python:
my_foods = ['pizza', 'falafel', 'carrot cake']
friend_foods = my_foods[:]
print("My favorite foods are:")
print(my_foods)
print("\nMy friend's favorite foods are:")
print(friend_foods)

قمنا بإنشاء قائمة my_foods ثم قمنا بإنشاء قائمة جديدة تسمة friend_foods وهي نسخة من القائمة الأولى. والناتج كما يلي:

Python:
My favorite foods are:
['pizza', 'falafel', 'carrot cake']
My friend's favorite foods are:
['pizza', 'falafel', 'carrot cake']

fa.webp

هو نوع خاص من القوائم التي لا يمكن تعديل عناصرها. يتم استخدامها في حال كان هناك عناصر لا نريد تعييرها طول حياة البرنامج.
tuble يشبه القائمة لكن بدل استخدام الأقواس المربعة [ ] نستخدم الأقواس الدائرية ( ).

Python:
dimensions = (200, 50)
dimensions[0] = 250

في المثال السابق عند التعديل على قيمة العنصر الأول في الـ Tuble لن يسمح بايثون بذلك لأنها غير قابلة للتعديل. لذلك سيظهر رسالة خطأ كما يلي:

Python:
File "dimensions.py", line 2, in <module>
dimensions[0] = 250
TypeError: 'tuple' object does not support item assignment


إذا كنت تريد أن تنشئ عنصر واحد فقط على أنه tuble يجب إضافة فاصلة بعد العنصر لجعل بايثون يتعرف عليه كـ tuble كما في المثال : my_t = (3,)


يمكنك استخدام الحلقة for مع الـ tuble كما تستخدم مع القوائم بنفس الطريقة.

بينما لا يمكنك تعديل عناصر الـ tuble بعد تعريفها، يمكنك إعادة تعيين توبل جديد إلى نفس المتغير. كما في المثال التالي:

Python:
dimensions = (200, 50)
print("Original dimensions:")

for dimension in dimensions:
print(dimension)

dimensions = (400, 100)
print("\nModified dimensions:")

for dimension in dimensions:
print(dimension)

تدريب (1): قم بإنشاء قائمة تحتوي على 5 عناصر ثم قم بما يلي:
1- اطبع عناصر القائمة جميعها.
2- قم بتعديل العنصر الثاني إلى عنصر آخر تريده. ثم اطبع القائمة بعد التعديل.
3- أضف عنصر إلى نهاية القائمة وقم بحذف العنصر الأول من الاقئمة ثم اطبع القائمة بعد التعديل.
4- اطبع عدد عناصر القائمة.


تدريب (2): أنشئ قائمة تحتوي على الأرقام من 20 إلى 100 :
1- أوجد الحد الأدنى والحد الأقصى للقائمة.
2- أوجد مجموع عناصر القائمة.
3- قم بتعديل العناصر في القائمة عن طريق إيجاد مكعب كل عنصر ثم قم بطباعة الناتجز
4-استخدم التقسيم لطباعة العناصر من الموقع الثاني إلى الموقع الخامس.
5- انسخ القائمة إلى قائمة جديدة وإضف رقم 4 إلى القائمة الأولى ورقم 9 إلى القائمة الثانية. ثم قم بطباعة القائمتين
6- قم بترتيب عناصر القائمة تنازليًا واطبعها.


تدريب(3): قم بإنشاء tuble تحتوي على 4 أسماء :
1- قم بطباعة العناصر الرابع والثاني.
2- أعد تعيين الـtuble بأربعة أسماء جديدة ثم اطبعها.


fa.webp

وبهذا نكون قد وصلنا إلى نهاية درسنا لهذا اليوم.

دمتم بحفظ الله ورعايتة.
 
التعديل الأخير:
بسم الله الرحمن الرحيم
اللهم علّمنا ما ينفعنا وانفعنا بما علّمتنا إنك أنت العليم الحكيم

سنكمل في هذا الدرس الحديث عن القوائم كما بدأنا في الدرس السابق.



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

......
Python:
numbers = [10, 20, 30, 40, 50]
total_sum = 0
for number in numbers:
    total_sum += number
print("The sum of the items in the list is:", total_sum)

لدينا قائمة مكونة من 5 عناصر ونريد جمعها إلى بعضها. بدأنا بتعريف متغير باسم total_sum بقيمة ابتدائية صفر. ثم أنشأنها حلقة للمرور على كافة العناصر الموجودة في القائمة وفي كل مرة يقوم بجمع العنصر إلى الـ total_sum . وفي نهاية الحلقة تكون قد جُمعت كافة الأرقام ثم قمنا بطباعة الناتج.

Python:
The sum of the items in the list is: 150

مشاهدة المرفق 14092


إذا كنت تريد إنشاء قائمة مكونه من عدد كبير من الأرقام المتتالية يمكنك استخدام الدالة range بدلًا من كتابة جميع الأرقام بداخل القائمة عن طريق استخدام الدالى list
كما في المثال التالي:

Python:
numbers = list(range(1, 50))
print(numbers)

تظهر القائمة بالشكل التالي:

Python:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49]

يمكننا أيضًا استخدام الدالة range لإخبار بايثون بتخطي أرقام معينة داخل القائمة. عن طريق إضافة مقدار الخطوة بين الأرقام إلى الدالة range . كما في المثال التالي:

Python:
even_numbers = list(range(2, 11, 2))
print(even_numbers)

ويكون الناتج كالتالي:

Python:
[2, 4, 6, 8, 10]

لإنشاء قائمة من الأرقام المربعة يمكننا أيضًا استخدام الدالة range في ذلك . لنفرض أنك تريد إنشاء قائمة بأول 10 أرقام مربعة سنقوم بالخطوات التالي:

1- سنقوم بإنشاء قائمة فارغة باسم sequares
2- سنستخدم الحلقة for لتكرار العمليات على كل قيمة من 1 إلى 10 باستخدام الـ range
3- بداخل الحلقة سنقوم برفع القيمة إلى الأس 2 عن طريق استخدام (2**) ثم سنقوم بتخزين هذه القيمة داخل متغير اسمه sequare
4- سنضيف قيمة المتغير sequare إلى القائمة sequares
5- سنقوم بطباعة القائمة.

Python:
squares = []
for value in range(1, 11):
    square = value ** 2
    squares.append(square)
print(squares)

سيظهر لنا الناتج بهذا الشكل:

Python:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

مشاهدة المرفق 14092


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


1- min
2- max

كما في المثال التالي:

Python:
digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
min(digits)
max(digits)

ويكون الناتج لهذه الدوال كما يلي:

Python:
0
9

ولإيجاد مجموع الأرقام في القائمة يمكننا استخدام الدالة sum كما في المثال التالي:

Python:
digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
sum(digits)

ويكون الناتج كالتالي:

Python:
45

لتحديد عدد مرات تكرار عنصر معين داخل قائمة يمكن استخدام الدالة count كما في المثال التالي:

Python:
numbers = [1, 2, 3, 4, 3, 2, 1, 3, 3, 5]

count_of_three = numbers.count(3)

print("The number of times the number 3 appears is:", count_of_three)

ويكون الناتج بهذا الشكل:

Python:
The number of times the number 3 appears is: 4

مشاهدة المرفق 14092



يمكن العمل مع مجموعة محددة من عناصر القائمة بدلًا من العمل على القائمة بأكملها عن طريق ما يسمى بالتقسيم ( Slicing )

لإجراء تقسيم على قائمة يجب تحديد موقع العنصر الأول (index) وموقع العنصر الأخير للعناصر التي نريد العمل عليها من ضمن القائمة. كما في المثال التالي:

Python:
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[0:3])
print(players[:3])
print(players[2:])
print(players[:])
[SIZE=5]print(players[-3:])[/SIZE]

سنقوم الآن يتوضيح كل جملة طباعة في المثال السابق:

print(players[0:3]): هذا الأمر يطبع أول ثلاثة عناصر في القائمة (العناصر ذات المواقع 0، 1، 2)
print(players[:3]): في هذا الأمر تم حذف الموقع الأول، فيبدأ التقسيم من بداية القائمة حتى الموقع الرابع (العنصر ذو الموقع 3).
print(players[2:])
: في هذا الأمر تم حذف الموقع الثاني ، فيبدأ التقسيم من الموقع 2 حتى نهاية القائمة.
print(players[:]): في هذا الأمر تم حذف الموقعين الأول والثاني ، فيقوم بطباعة كافة العناصر.
print(players[-3:]): هنا استخدمنا الموقع السالب -3 لاستخراج العناصر الثلاثة الأخيرة من القائمة.

ويكون الناتج كما يلي:

Python:
['charles', 'martina', 'michael']
['charles', 'martina', 'michael']
['michael', 'florence', 'eli']
['charles', 'martina', 'michael', 'florence', 'eli']
['michael', 'florence', 'eli']

يمكننا أيضًا استخدام التقسيم مع حلقة for , إذا كنت ترغب في تكرار جزء معين من القائمة. كما في المثال التالي:

Python:
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print("Here are the first three players on my team:")

for player in players[:3]:
    print(player.title())

ويكون الناتج كما يلي:
Python:
Here are the first three players on my team:
Charles
Martina
Michael

مشاهدة المرفق 14092


في بايثون، يمكنك نسخ قائمة (list) بحيث تبدأ بقائمة موجودة بالفعل ثم تنشئ قائمة جديدة بناءً عليها. ولكن عند نسخ قائمة، من المهم التأكد من أنك تقوم بنسخها بشكل صحيح للحصول على قائمتين منفصلتين تماماً، بدلاً من الحصول على قائمة واحدة مشتركة بين المتغيرات.


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

Python:
my_foods = ['pizza', 'falafel', 'carrot cake']
friend_foods = my_foods[:]
print("My favorite foods are:")
print(my_foods)
print("\nMy friend's favorite foods are:")
print(friend_foods)

قمنا بإنشاء قائمة my_foods ثم قمنا بإنشاء قائمة جديدة تسمة friend_foods وهي نسخة من القائمة الأولى. والناتج كما يلي:

Python:
My favorite foods are:
['pizza', 'falafel', 'carrot cake']
My friend's favorite foods are:
['pizza', 'falafel', 'carrot cake']

مشاهدة المرفق 14092



هو نوع خاص من القوائم التي لا يمكن تعديل عناصرها. يتم استخدامها في حال كان هناك عناصر لا نريد تعييرها طول حياة البرنامج.
tuble يشبه القائمة لكن بدل استخدام الأقواس المربعة [ ] نستخدم الأقواس الدائرية ( ).

Python:
dimensions = (200, 50)
dimensions[0] = 250

في المثال السابق عند التعديل على قيمة العنصر الأول في الـ Tuble لن يسمح بايثون بذلك لأنها غير قابلة للتعديل. لذلك سيظهر رسالة خطأ كما يلي:

Python:
File "dimensions.py", line 2, in <module>
dimensions[0] = 250
TypeError: 'tuple' object does not support item assignment


إذا كنت تريد أن تنشئ عنصر واحد فقط على أنه tuble يجب إضافة فاصلة بعد العنصر لجعل بايثون يتعرف عليه كـ tuble كما في المثال : my_t = (3,)


يمكنك استخدام الحلقة for مع الـ tuble كما تستخدم مع القوائم بنفس الطريقة.

بينما لا يمكنك تعديل عناصر الـ tuble بعد تعريفها، يمكنك إعادة تعيين توبل جديد إلى نفس المتغير. كما في المثال التالي:

Python:
dimensions = (200, 50)
print("Original dimensions:")

for dimension in dimensions:
print(dimension)

dimensions = (400, 100)
print("\nModified dimensions:")

for dimension in dimensions:
print(dimension)

تدريب (1): قم بإنشاء قائمة تحتوي على 5 عناصر ثم قم بما يلي:
1- اطبع عناصر القائمة جميعها.
2- قم بتعديل العنصر الثاني إلى عنصر آخر تريده. ثم اطبع القائمة بعد التعديل.
3- أضف عنصر إلى نهاية القائمة وقم بحذف العنصر الأول من الاقئمة ثم اطبع القائمة بعد التعديل.
4- اطبع عدد عناصر القائمة.


تدريب (2): أنشئ قائمة تحتوي على الأرقام من 20 إلى 100 :
1- أوجد الحد الأدنى والحد الأقصى للقائمة.
2- أوجد مجموع عناصر القائمة.
3- قم بتعديل العناصر في القائمة عن طريق إيجاد مكعب كل عنصر ثم قم بطباعة الناتجز
4-استخدم التقسيم لطباعة العناصر من الموقع الثاني إلى الموقع الخامس.
5- انسخ القائمة إلى قائمة جديدة وإضف رقم 4 إلى القائمة الأولى ورقم 9 إلى القائمة الثانية. ثم قم بطباعة القائمتين
6- قم بترتيب عناصر القائمة تنازليًا واطبعها.


تدريب(3): قم بإنشاء tuble تحتوي على 4 أسماء :
1- قم بطباعة العناصر الرابع والثاني.
2- أعد تعيين الـtuble بأربعة أسماء جديدة ثم اطبعها.


مشاهدة المرفق 14092

وبهذا نكون قد وصلنا إلى نهاية درسنا لهذا اليوم.

دمتم بحفظ الله ورعايتة.
الله يعطيك الف عافيه يارب 🙏
 
بسم الله الرحمن الرحيم

اللهم علّمنا ما ينفعنا وانفعنا بما علّمتنا إنك أنت العليم الحكيم

سنكمل في هذا الدرس الحديث عن القوائم كما بدأنا في الدرس السابق.



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

......
Python:
numbers = [10, 20, 30, 40, 50]
total_sum = 0
for number in numbers:
    total_sum += number
print("The sum of the items in the list is:", total_sum)

لدينا قائمة مكونة من 5 عناصر ونريد جمعها إلى بعضها. بدأنا بتعريف متغير باسم total_sum بقيمة ابتدائية صفر. ثم أنشأنها حلقة للمرور على كافة العناصر الموجودة في القائمة وفي كل مرة يقوم بجمع العنصر إلى الـ total_sum . وفي نهاية الحلقة تكون قد جُمعت كافة الأرقام ثم قمنا بطباعة الناتج.

Python:
The sum of the items in the list is: 150

مشاهدة المرفق 14092


إذا كنت تريد إنشاء قائمة مكونه من عدد كبير من الأرقام المتتالية يمكنك استخدام الدالة range بدلًا من كتابة جميع الأرقام بداخل القائمة عن طريق استخدام الدالى list
كما في المثال التالي:

Python:
numbers = list(range(1, 50))
print(numbers)

تظهر القائمة بالشكل التالي:

Python:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49]

يمكننا أيضًا استخدام الدالة range لإخبار بايثون بتخطي أرقام معينة داخل القائمة. عن طريق إضافة مقدار الخطوة بين الأرقام إلى الدالة range . كما في المثال التالي:

Python:
even_numbers = list(range(2, 11, 2))
print(even_numbers)

ويكون الناتج كالتالي:

Python:
[2, 4, 6, 8, 10]

لإنشاء قائمة من الأرقام المربعة يمكننا أيضًا استخدام الدالة range في ذلك . لنفرض أنك تريد إنشاء قائمة بأول 10 أرقام مربعة سنقوم بالخطوات التالي:

1- سنقوم بإنشاء قائمة فارغة باسم sequares
2- سنستخدم الحلقة for لتكرار العمليات على كل قيمة من 1 إلى 10 باستخدام الـ range
3- بداخل الحلقة سنقوم برفع القيمة إلى الأس 2 عن طريق استخدام (2**) ثم سنقوم بتخزين هذه القيمة داخل متغير اسمه sequare
4- سنضيف قيمة المتغير sequare إلى القائمة sequares
5- سنقوم بطباعة القائمة.

Python:
squares = []
for value in range(1, 11):
    square = value ** 2
    squares.append(square)
print(squares)

سيظهر لنا الناتج بهذا الشكل:

Python:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

مشاهدة المرفق 14092


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


1- min
2- max

كما في المثال التالي:

Python:
digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
min(digits)
max(digits)

ويكون الناتج لهذه الدوال كما يلي:

Python:
0
9

ولإيجاد مجموع الأرقام في القائمة يمكننا استخدام الدالة sum كما في المثال التالي:

Python:
digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
sum(digits)

ويكون الناتج كالتالي:

Python:
45

لتحديد عدد مرات تكرار عنصر معين داخل قائمة يمكن استخدام الدالة count كما في المثال التالي:

Python:
numbers = [1, 2, 3, 4, 3, 2, 1, 3, 3, 5]

count_of_three = numbers.count(3)

print("The number of times the number 3 appears is:", count_of_three)

ويكون الناتج بهذا الشكل:

Python:
The number of times the number 3 appears is: 4

مشاهدة المرفق 14092



يمكن العمل مع مجموعة محددة من عناصر القائمة بدلًا من العمل على القائمة بأكملها عن طريق ما يسمى بالتقسيم ( Slicing )

لإجراء تقسيم على قائمة يجب تحديد موقع العنصر الأول (index) وموقع العنصر الأخير للعناصر التي نريد العمل عليها من ضمن القائمة. كما في المثال التالي:

Python:
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[0:3])
print(players[:3])
print(players[2:])
print(players[:])
[SIZE=5]print(players[-3:])[/SIZE]

سنقوم الآن يتوضيح كل جملة طباعة في المثال السابق:

print(players[0:3]): هذا الأمر يطبع أول ثلاثة عناصر في القائمة (العناصر ذات المواقع 0، 1، 2)
print(players[:3]): في هذا الأمر تم حذف الموقع الأول، فيبدأ التقسيم من بداية القائمة حتى الموقع الرابع (العنصر ذو الموقع 3).
print(players[2:])
: في هذا الأمر تم حذف الموقع الثاني ، فيبدأ التقسيم من الموقع 2 حتى نهاية القائمة.
print(players[:]): في هذا الأمر تم حذف الموقعين الأول والثاني ، فيقوم بطباعة كافة العناصر.
print(players[-3:]): هنا استخدمنا الموقع السالب -3 لاستخراج العناصر الثلاثة الأخيرة من القائمة.

ويكون الناتج كما يلي:

Python:
['charles', 'martina', 'michael']
['charles', 'martina', 'michael']
['michael', 'florence', 'eli']
['charles', 'martina', 'michael', 'florence', 'eli']
['michael', 'florence', 'eli']

يمكننا أيضًا استخدام التقسيم مع حلقة for , إذا كنت ترغب في تكرار جزء معين من القائمة. كما في المثال التالي:

Python:
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print("Here are the first three players on my team:")

for player in players[:3]:
    print(player.title())

ويكون الناتج كما يلي:
Python:
Here are the first three players on my team:
Charles
Martina
Michael

مشاهدة المرفق 14092


في بايثون، يمكنك نسخ قائمة (list) بحيث تبدأ بقائمة موجودة بالفعل ثم تنشئ قائمة جديدة بناءً عليها. ولكن عند نسخ قائمة، من المهم التأكد من أنك تقوم بنسخها بشكل صحيح للحصول على قائمتين منفصلتين تماماً، بدلاً من الحصول على قائمة واحدة مشتركة بين المتغيرات.


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

Python:
my_foods = ['pizza', 'falafel', 'carrot cake']
friend_foods = my_foods[:]
print("My favorite foods are:")
print(my_foods)
print("\nMy friend's favorite foods are:")
print(friend_foods)

قمنا بإنشاء قائمة my_foods ثم قمنا بإنشاء قائمة جديدة تسمة friend_foods وهي نسخة من القائمة الأولى. والناتج كما يلي:

Python:
My favorite foods are:
['pizza', 'falafel', 'carrot cake']
My friend's favorite foods are:
['pizza', 'falafel', 'carrot cake']

مشاهدة المرفق 14092



هو نوع خاص من القوائم التي لا يمكن تعديل عناصرها. يتم استخدامها في حال كان هناك عناصر لا نريد تعييرها طول حياة البرنامج.
tuble يشبه القائمة لكن بدل استخدام الأقواس المربعة [ ] نستخدم الأقواس الدائرية ( ).

Python:
dimensions = (200, 50)
dimensions[0] = 250

في المثال السابق عند التعديل على قيمة العنصر الأول في الـ Tuble لن يسمح بايثون بذلك لأنها غير قابلة للتعديل. لذلك سيظهر رسالة خطأ كما يلي:

Python:
File "dimensions.py", line 2, in <module>
dimensions[0] = 250
TypeError: 'tuple' object does not support item assignment


إذا كنت تريد أن تنشئ عنصر واحد فقط على أنه tuble يجب إضافة فاصلة بعد العنصر لجعل بايثون يتعرف عليه كـ tuble كما في المثال : my_t = (3,)


يمكنك استخدام الحلقة for مع الـ tuble كما تستخدم مع القوائم بنفس الطريقة.

بينما لا يمكنك تعديل عناصر الـ tuble بعد تعريفها، يمكنك إعادة تعيين توبل جديد إلى نفس المتغير. كما في المثال التالي:

Python:
dimensions = (200, 50)
print("Original dimensions:")

for dimension in dimensions:
print(dimension)

dimensions = (400, 100)
print("\nModified dimensions:")

for dimension in dimensions:
print(dimension)

تدريب (1): قم بإنشاء قائمة تحتوي على 5 عناصر ثم قم بما يلي:
1- اطبع عناصر القائمة جميعها.
2- قم بتعديل العنصر الثاني إلى عنصر آخر تريده. ثم اطبع القائمة بعد التعديل.
3- أضف عنصر إلى نهاية القائمة وقم بحذف العنصر الأول من الاقئمة ثم اطبع القائمة بعد التعديل.
4- اطبع عدد عناصر القائمة.


تدريب (2): أنشئ قائمة تحتوي على الأرقام من 20 إلى 100 :
1- أوجد الحد الأدنى والحد الأقصى للقائمة.
2- أوجد مجموع عناصر القائمة.
3- قم بتعديل العناصر في القائمة عن طريق إيجاد مكعب كل عنصر ثم قم بطباعة الناتجز
4-استخدم التقسيم لطباعة العناصر من الموقع الثاني إلى الموقع الخامس.
5- انسخ القائمة إلى قائمة جديدة وإضف رقم 4 إلى القائمة الأولى ورقم 9 إلى القائمة الثانية. ثم قم بطباعة القائمتين
6- قم بترتيب عناصر القائمة تنازليًا واطبعها.


تدريب(3): قم بإنشاء tuble تحتوي على 4 أسماء :
1- قم بطباعة العناصر الرابع والثاني.
2- أعد تعيين الـtuble بأربعة أسماء جديدة ثم اطبعها.


مشاهدة المرفق 14092

وبهذا نكون قد وصلنا إلى نهاية درسنا لهذا اليوم.

دمتم بحفظ الله ورعايتة.
الله يبارك جهود جبارة بالشرح، مستنيين شرح عن الـ methods المسموح استخدامها مع كل نوع قوائم 🔥🔥
 
  • Love
التفاعلات: RTH
الله يبارك جهود جبارة بالشرح، مستنيين شرح عن الـ methods المسموح استخدامها مع كل نوع قوائم 🔥🔥
بارك الله فيك
بإذن الله تعالى
 
بارك الله فيك وجزاك الله كل خير
ننتظر جديدك دائماً
 
  • Love
التفاعلات: RTH

آخر المشاركات

فانوس

رمضان
عودة
أعلى