Programming Basics SQL HTML CSS JavaScript React Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Linux Learn Typing

بايثونالكلاس list

  • مفهوم الكلاس list
  • الوصول لعناصر كائن list
  • حذف عناصر من list
  • الحصول على عناصر محددة في list
  • العوامل التي يمكن استخدامها مع list
  • دوال الكلاس list
  • دوال جاهزة في بايثون للتعامل مع الـ list

مفهوم الكلاس list

النوع list يمثل مصفوفة ليس لها حجم ثابت، يمكنها تخزين قيم من مختلف الأنواع في وقت واحد و يمكن تبديل قيمها في أي وقت.


طريقة تعريف list

لتعريف list نستخدم الرمز [ ] و بداخله يمكن تمرير القيم بشكل مباشر له بشرط وضع فاصلة بين كل قيمتين، و يمكن تحديد نوع و عدد العناصر التي سيتم وضعها فيه فقط.


في المثال التالي قمنا بتعريف list فارغ، أي لا يحتوي أي عنصر.

المثال الأول

Test.py
A = []        # A فارغ إسمه list هنا قمنا بتعريف
print(A)      # ( أي كما قمنا بتعريفه ) كما هو A هنا قمنا بعرض ما يحتويه الكائن

النتيجة

[]

في المثال التالي قمنا بتعريف list وضعنا فيه أعداد صحيحة.

المثال الثاني

Test.py
numbers = [10, 20, 30, 40, 50]       # يحتوي على أعداد صحيحة فقط numbers إسمه list هنا قمنا بتعريف
print(numbers)                       # ( أي كما قمنا بتعريفه ) كما هو numbers هنا قمنا بعرض محتوى الكائن

النتيجة

[10, 20, 30, 40, 50]

في المثال التالي قمنا بتعريف list وضعنا فيه نصوص.

المثال الثالث

Test.py
names = ['Rami', 'Sara', 'Nada']      # يحتوي على نصوص فقط names إسمه list هنا قمنا بتعريف
print(names)                          # ( أي كما قمنا بتعريفه ) كما هو names هنا قمنا بعرض ما يحتويه الكائن

النتيجة

['Rami', 'Sara', 'Nada']

في المثال التالي قمنا بتعريف list وضعنا فيه أعداد صحيحة و نصوص.

المثال الرابع

Test.py
data = [1, 'Mhamad', 'Harmush', 1500]      # يحتوي على أعداد صحيحة و نصوص data إسمه list هنا قمنا بتعريف
print(data)                                # ( أي كما قمنا بتعريفه ) كما هو data هنا قمنا بعرض ما يحتويه الكائن

النتيجة

[1, 'Mhamad', 'Harmush', 1500]

في المثال التالي قمنا بتعريف list إسمه data و يتألف من 4 عناصر و من ثم قمنا بإعطائه 4 قيم من مختلف الأنواع.
ملاحظة: الكلمة None وضعنا للإشارة إلى أننا لا نريد وضع قيم إفتراضية للعناصر الموجودة في list.

المثال الخامس

Test.py
# None يتألف من 4 عناصر و قيمها الإفتراضية هي data إسمه list هنا قمنا بتعريف
data = [None] * 4

# هنا قمنا بوضع قيمة مختلفة في كل عنصر فيه
data[0] = 100
data[1] = 5.5
data[2] = True
data[3] = 'Hello'

# data هنا قمنا بعرض ما يحتويه الكائن
print(data)

النتيجة

[100, 5.5, True, 'Hello']

في المثال التالي قمنا بتعريف list إسمه numbers و يتألف من 3 عناصر و قيمتها الأولية هي 0، ثم قمنا بتغيير قيمه.

المثال السادس

Test.py
# 0 يتألف من 3 عناصر و قيمها الإفتراضية هي numbers إسمه list هنا قمنا بتعريف
numbers = [0] * 3

# هنا قمنا بوضع قيمة مختلفة في كل عنصر فيه
numbers[0] = 10
numbers[1] = 15
numbers[2] = 20

# numbers هنا قمنا بعرض ما يحتويه الكائن
print(numbers)

النتيجة

[10, 15, 20]

في المثال التالي قمنا بتعريف list إسمه languages و قيم عناصره الأولية هي 'Not Specified'، ثم قمنا بتغيير قيمه.

المثال السابع

Test.py
# 'Not Specified' يتألف من 3 عناصر قيمتها الإفتراضية هي languages إسمه list هنا قمنا بتعريف
languages = ['Not Specified'] * 3

# هنا قمنا بوضع قيمة مختلفة في كل عنصر فيه
languages[0] = 'Arabic'
languages[1] = 'English'
languages[2] = 'French'

# languages هنا قمنا بعرض ما يحتويه الكائن
print(languages)

النتيجة

['Arabic', 'English', 'French']

الوصول لعناصر كائن list

للوصول لأي عنصر موجود في list سواء للحصول على قيمته أو تغييرها فإننا نستخدم رقم الفهرس ( Index ) الخاص بالعنصر.

في بايثون، يمكنك الوصول للعناصر الموجودة في list بطريقتين:

  • في حال أردت الوصول للعناصر من اليسار إلى اليمين، أي من أول عنصر تم إدخاله، فإن رقم فهرس أول عنصر سيكون 0
  • في حال أردت الوصول للعناصر من اليمين إلى اليسار، أي من آخر عنصر تم إدخاله، فإن رقم فهرس آخر عنصر سيكون -1

في المثال التالي قمنا بتعريف list وضعنا فيه نصوص. بعدها قمنا بعرض قيمة أول و ثاني عنصر فيه.

المثال الأول

Test.py
# وضعنا فيه قيم نصية تمثل أسماء أشخاص names إسمه list هنا قمنا بتعريف
names = ['Rami', 'Sara', 'Nada', 'Mhamad', 'Salem']

print(names[0])     # names هنا قمنا بعرض قيمة أول عنصر موجود في الكائن
print(names[1])     # names هنا قمنا بعرض قيمة ثاني عنصر موجود في الكائن

النتيجة

Rami
Sara

في المثال التالي قمنا بتعريف list وضعنا فيه نصوص. بعدها قمنا بعرض قيمة آخر و قبل آخر عنصر فيه.

المثال الثاني

Test.py
# وضعنا فيه قيم نصية تمثل أسماء أشخاص names إسمه list هنا قمنا بتعريف
names = ['Rami', 'Sara', 'Nada', 'Mhamad', 'Salem']

print(names[-1])     # names هنا قمنا بعرض قيمة آخر عنصر موجود في الكائن
print(names[-2])     # names هنا قمنا بعرض قيمة ما قبل آخر عنصر موجود في الكائن

النتيجة

Salem
Mhamad

في المثال التالي قمنا بتعريف list وضعنا فيه نصوص. بعدها قمنا بعرض جميع القيم الموضوعة فيه باستخدام الحلقة for.

المثال الثالث

Test.py
# وضعنا فيه قيم نصية تمثل أسماء أشخاص names إسمه list هنا قمنا بتعريف
names = ['Rami', 'Sara', 'Nada', 'Mhamad', 'Salem']

# و من ثم سيتم طباعتها x في المتغير names في كل مرة سيتم وضع قيمة عنصر من عناصر الكائن
for x in names:
    print(x)

النتيجة

Rami
Sara
Nada
Mhamad
Salem

في المثال التالي قمنا بتعريف list وضعنا فيه أعداد صحيحة. بعدها قمنا بحساب ناتج جمع جميع القيم الموضوعة فيه باستخدام الحلقة for.

المثال الرابع

Test.py
# وضعنا فيه أعداد صحيحة numbers إسمه list هنا قمنا بتعريف
numbers = [10, 20, 30, 40, 50]

# numbers هنا قمنا بتعريف متغير سنستخدمه لحفظ ناتج جمع القيم الموجودة في الكائن
total = 0

# total و من ثم سيتم إضافتها على قيمة المتغير x في المتغير numbers في كل مرة سيتم وضع قيمة عنصر من عناصر الكائن
for x in numbers:
    total += x

# numbers و التي ستساوي ناتج جمع القيم الموجودة في الكائن total هنا قمنا بطباعة قيمة المتغير
print('Total sum is:', total)

النتيجة

Total sum is: 150

حذف عناصر من list

الجملة del تستخدم لحذف المصفوفة كما هي من الذاكرة أو لحذف عناصر محددة منها.

عند حذف عنصر في list بواسطة الجملة del فإن مترجم لغة بايثون يقوم بإعادة ترتيب عناصره من جديد و تحديث رقم الفهرس الخاص بكل عنصر فيها.


في المثال التالي قمنا بتعريف list وضعنا فيه أرقام. بعدها قمنا بحذف عنصرين منه.

المثال الأول

Test.py
# وضعنا فيه أعداد صحيحة arr إسمه list هنا قمنا بتعريف
arr = [10, 20, 30, 40, 50]

del arr[0]    # arr هنا قمنا بحذف أول عنصر موجود في الكائن
del arr[1]    # arr هنا قمنا بحذف ثاني عنصر موجود في الكائن

print(arr)    # arr هنا قمنا بعرض ما يحتويه الكائن

النتيجة

[20, 40, 50]

الصورة التالية توضح كيف تم إلغاء العناصر.

الكلمة المفتاحية del في بايثون

في المثال التالي قمنا بتعريف list وضعنا فيه أرقام. بعدها قمنا بحذف العناصر الموجودة فيه إبتداءاً من العنصر الذي يملك رقم الفهرس 0 وصولاً إلى العنصر الموجود قبل العنصر الذي يملك رقم الفهرس 3، مما يعني أننا قمنا بحذف العناصر arr[0] و arr[1] و arr[2] دفعة واحدة.

المثال الثاني

Test.py
# وضعنا فيه أعداد صحيحة arr إسمه list هنا قمنا بتعريف
arr = [10, 20, 30, 40, 50]

del arr[0:3]    # arr هنا قمنا بحذف أول ثلاث عناصر موجودة في الكائن

print(arr)      # arr هنا قمنا بعرض ما يحتويه الكائن

النتيجة

[40, 50]

الصورة التالية توضح كيف تم إلغاء العناصر.

حذف مجموعة عناصر من list في بايثون

في المثال التالي قمنا بتعريف list وضعنا فيه أرقام. بعدها قمنا بحذفه من الذاكرة. بعدها حاولنا أن نعرض ما يحتويه.

المثال الثالث

Test.py
# وضعنا فيه أعداد صحيحة arr إسمه list هنا قمنا بتعريف
arr = [10, 20, 30, 40, 50]

del arr       # كما هو من الذاكرة arr هنا قمنا بحذف الكائن

print(arr)    # و الذي في الأصل قمنا بحذفه من الذاكرة لذلك سيظهر خطأ عند التشغيل arr هنا حاولنا عرض ما يحتويه الكائن

النتيجة

NameError: name 'arr' is not defined

الحصول على عناصر محددة في list

باستخدام الرمز [ : ] يمكننا إرجاع عناصر محددة من الكائن list سواء لعرضها أو تخزينها.


في المثال التالي قمنا بتعريف list وضعنا فيه أرقام. بعدها قمنا بعرض جزء منه.
فعلياً قمنا بعرض العناصر الموجودة فيه إبتداءاً من العنصر الذي يملك رقم فهرس 0 وصولاً إلى العنصر الموجود قبل العنصر الذي يملك رقم فهرس 3.
أي قمنا بعرض قيم العناصر arr[0] - arr[1] - arr[2].

المثال الأول

Test.py
arr = [10, 20, 30, 40, 50]    # وضعنا فيه أعداد صحيحة arr إسمه list هنا قمنا بتعريف

print(arr[0: 3])              # arr هنا قمنا بعرض أول ثلاث عناصر موجودة في الكائن

النتيجة

[10, 20, 30]

في المثال التالي قمنا بتعريف list وضعنا فيه أرقام. بعدها قمنا بنسخ جزء منه و وضعه في list ثانية.
فعلياً قمنا بنسخ العناصر الموجودة فيه إبتداءاً من العنصر الذي يملك رقم فهرس 0 وصولاً إلى العنصر الموجود قبل العنصر الذي يملك رقم فهرس 3.
أي قمنا بنسخ قيم العناصر arr[0] - arr[1] - arr[2].

المثال الثاني

Test.py
arr = [10, 20, 30, 40, 50]    # وضعنا فيه أعداد صحيحة arr إسمه list هنا قمنا بتعريف

arr2 = arr[0: 3]              # arr2 و وضعها في كائن جديد إسمه arr هنا قمنا بنسخ أول ثلاث عناصر موجودة في الكائن

print(arr2)                   # arr2 هنا قمنا بعرض ما يحتويه الكائن

النتيجة

[10, 20, 30]

العوامل التي يمكن استخدامها مع list

العامل دواعي الإستخدام
+ العامل + يستخدم لدمج list أو أكثر في list واحد.
* العامل * يستخدم لتكرار قيمة معينة أو نوع بيانات معين و إضافته كعنصر في الـlist.
in العامل in يستخدم للبحث عن قيمة محددة في الـlist أو للمرور على قيمه في حال استخدامه في الحلقة for.

في المثال التالي قمنا بتخزين إثنين list في list واحد بواسطة العامل +.

المثال الأول

Test.py
arr1 = [1, 2, 3]      # وضعنا فيه أعداد صحيحة arr1 إسمه list هنا قمنا بتعريف
arr2 = [4, 5, 6]      # وضعنا فيه أعداد صحيحة arr2 إسمه list هنا قمنا بتعريف

arr3 = arr1 + arr2    # list و بالتالي أصبح عبارة عن كائن arr2 و arr1 وضعنا فيه قيم الكائنين arr3

print(arr3)           # arr3 هنا قمنا بعرض ما يحتويه الكائن

النتيجة

[1, 2, 3, 4, 5, 6]

في المثال التالي قمنا بتعريف list وضعنا فيه 3 عناصر تملك 'python' كقيمة لهم بواسطة العامل *.

المثال الثاني

Test.py
arr = ['python'] * 3     # 'python' وضعنا فيه 3 عناصر قيمتهم النص arr إسمه list هنا قمنا بتعريف

print(arr)               # arr هنا قمنا بعرض ما يحتويه الكائن

النتيجة

['python', 'python', 'python']

في المثال التالي إستخدمنا العامل in للبحث في الـ list عن قيمة معينة.

المثال الثالث

Test.py
arr = ['Mhamad', 'Rony', 'Rima', 'Sara']     # وضعنا فيه مجموعة قيم نصية arr إسمه list هنا قمنا بتعريف

x = 'Rima'                                   # وضعنا فيه نص x هنا قمنا بتعريف متغير إسمه

print('Is Rima in the?')
print(x in arr)                              # True و إذا تم إيجادها سيتم عرض arr في الكائن x هنا سيتم البحث عن قيمة

النتيجة

Is Rima in the?
True

دوال الكلاس list

إسم الدالة مع تعريفها
1 append(obj) تستخدم لإضافة عنصر جديد في آخر الـlist الذي قام باستدعائها.
شاهد المثال
2 extend(iterable) تستخدم لإضافة عناصر مصفوفة من أي نوع في آخر الـlist الذي قام باستدعائها.
شاهد المثال
3 insert(index, obj) تستخدم لإضافة عنصر جديد في مكان محدد في الـlist الذي قام باستدعائها.
شاهد المثال
4 pop([index]) تستخدم لحذف عنصر محدد من الـlist الذي قام باستدعائها أو لحذف آخر عنصر موجود فيه.
شاهد المثال
5 clear() تستخدم لحذف جميع عناصر الـlist الذي قام باستدعائها.
شاهد المثال
6 copy() ترجع نسخة من الـlist الذي قام باستدعائها.
شاهد المثال
7 count(x) تستخدم للبحث في الـlist الذي قام باستدعائها عن قيمة معينة.
ترجع عدد صحيح يمثل كم مرة تم إيجاد عنصر عنده نفس القيمة التي مررناها لها مكان البارميتر x.
شاهد المثال
8 remove(x) تستخدم لحذف أول عنصر يتم إيجاده في الـlist الذي قام باستدعائها يملك نفس القيمة التي نمررها لها مكان البارميتر x.
في حال لم يتم العثور على القيمة المراد حذفها ترمي الإستثناء ValueError.
شاهد المثال
9 index(x[, start[, end]]) تبحث في الـlist الذي قام باستدعائها عن رقم فهرس أول عنصر يملك القيمة التي نمرره لها مكان الباراميتر x و ترجعه.
في حال لم يتم العثور على القيمة المراد معرفة مكانها ترمي الإستثناء ValueError.
شاهد المثال
10 sort(reverse=False) تستخدم لترتيب عناصر الـlist الذي قام باستدعائها بشكل تصاعدي أو تنازلي.
شاهد المثال
11 reverse() تستخدم لعكس ترتيب عناصر الـlist الذي قام باستدعائها.
شاهد المثال

دوال جاهزة في بايثون للتعامل مع الـ list

إسم الدالة مع تعريفها
1 len(list) ترجع عدد صحيح يمثل عدد عناصر الـlist الذي نمرره لها عند إستدعائها.
شاهد المثال
2 min(list) ترجع أصغر قيمة موجودة في الـlist الذي نمرره لها عند إستدعائها.
شاهد المثال
3 max(list) ترجع أكبر قيمة في الـlist الذي نمرره لها عند إستدعائها.
شاهد المثال
4 list(sequence) ترجع نسخة من أي كائن يحتوي مجموعة عناصر نمرره لها عند إستدعائها ككائن من الكلاس الـlist.
شاهد المثال