list in python

python reference

يتناول هذا الدرس كيفية التعامل مع إنشاء ليست list in python , حيث كما ذكرنا في الدرس السابق أن المصفوفة من نوع list يمكن إنشائها و تعديلها أو حذفها.

إنشاء list و عرضها

إنشاء قائمة List

friends = ["ahmed","hazem","mohamed","amr"]

يمكن أيضاً إنشاء List من خلال العنصر المدمج في لغة بايثون list

friends = list("ahmed","hazem","mohamed","amr")

عرض list

friends = ["ahmed","hazem","mohamed","amr"]
print(friends)

عرض نوع المتغير friends

friends = ["ahmed","hazem","mohamed","amr"]
print(type(friends))

عرض عدد عناصر List

friends = ["ahmed","hazem","mohamed","amr"]
print(len(friends))

عرض عناصر List

عرض عنصر معين من list , في المثال التالي سيتم عرض ahmed

friends = ["ahmed","hazem","mohamed","amr"]
print(friends[0])

عرض أخر عنصر في list, في المثال التالي سيعرض amr

friends = ["ahmed","hazem","mohamed","amr"]
print(friends[-1])

تحديد حدود عرض عناصر list , في المثال التالي سيعرض بدأ من العنصر الثالث mohamed الى العنصر الخامس ramy

friends = ["ahmed","hazem","mohamed","amr","ramy","samy"]
print(friends[2:5])

تحديد نقطة نهاية عرض العناصر , في المثال التالي سيعرض العناصر بدأ من العنصر الأول الى العنصر الخامس ramy

friends = ["ahmed","hazem","mohamed","amr","ramy","samy"]
print(friends[:5])

تحديد نطقة بدأ عرض العناصر , في المثال التالي سيبدأ عرض العناصر بدأ من العنصر الثالث mohamed وصولاً إلى نهاية المصفوفة.

friends = ["ahmed","hazem","mohamed","amr","ramy","samy"]
print(friends[2:])

يمكن تحديد نقطة بداية العنصر و نقطة النهاية بطريقة عكسية , في المثال التالي رقم 1- المقصود بة عنصر samy بينما ramy يحسب 2- و هكذا, لذلك عند تحديد من 3- الى 1- يتم عرض ramy و amr فقط لأن يتم تجاهل العنصر الأخير الذي تم تحديدة.

friends = ["ahmed","hazem","mohamed","amr","ramy","samy"]
print(friends[-3:-1])

تعديل List

تعديل قيمة عنصرفي List , في المثال التالي يتم تبديل عنصر الأول بدلاً من hazem يصبح waleed

friends = ["ahmed","hazem","mohamed","amr","ramy","samy"]
print("the friends list before update")
print(friends)
friends[0] = "waleed"

print("the friends list after update")
print(friends)

تحديث أكثر من عنصر في نفس الوقت , يمكن تحديد نقطة بدأ و نقطة نهاية لعملية التحديث, في المثال التالي سيتم تحديث العنصريين hazem و mohamed الى khaled و yousef.

friends = ["ahmed","hazem","mohamed","amr","ramy","samy"]
print("the friends list before update")
print(friends)
friends[1:3] = ["khaled","yousef"]

print("the friends list after update")
print(friends)

في حالة تحديد حدود لتحديث أكثر من عنصر ثم يتم إدخال عنصر واحد .. يتم تبديل العناصر المحددة بهذا العنصر الواحد فقط أوي بمعنى أخر يتم حذف تلك العناصر في مقابل إدخال هذا العنصر الواحد, في المثال التالي يتم حذف mohamed و hazem و في المقابل سيتم إدخال khaled مرة واحدة.

friends = ["ahmed","hazem","mohamed","amr","ramy","samy"]
print("the friends list before update")
print(friends)
friends[1:3] = ["khaled"]

print("the friends list after update")
print(friends)

فحص وجود أو عدم وجود عنصر معين في List

التأكد من وجود عنصر من خلال الشرط if

friends = ["ahmed","hazem","mohamed","amr","ramy","samy"]
if "hazem" in friends:
 print("hazem in the list")

التأكد من عدم وجود عنصر من خلال الشرط if

friends = ["ahmed","hazem","mohamed","amr","ramy","samy"]
if "khaled" not in friends:
 print("khaled not in the list")

إدخال عناصر إلى List

يمكن إستخدام الدالتين insert و append لإضافة عناصر إلى List, الفرق أن في دالة insert يمكن تحديد الموضع في المصفوفة لإدخال العنصر الجديد بينما append تقوم بإدخال العنصر في نهاية المصفوفة تلقائياً.
في المثال التالي سيتم إدخال ibrahim في id رقم 1 أي الترتيب الثاني بينما ramy سيتم إدخالة في نهاية المصفوفة.

friends = ["ahmed","hazem","mohamed","amr","yousef","khaled"]
print(friends)
print("----------------")

friends.insert(1,"ibrahim")
friends.append("ramy")

print(friends)

حذف عناصر من List

تستخدم الدالة pop لحذف عنصر محدد من list, في المثال التالي سيتم حذف العنصر الثاني hazem

friends = ["ahmed","hazem","mohamed","amr","yousef","khaled"]
print(friends)
print("----------------")
friends.pop(1)

print(friends)

إذا تم تنفيذ pop بدون إدخال العامل الخاص برقم العنصر يتم حذف أخر عنصر في القائمة, في المثال التالي سيتم حذف khaled من list

friends = ["ahmed","hazem","mohamed","amr","yousef","khaled"]
print(friends)
print("----------------")
friends.pop()

print(friends)

يمكن حذف جميع محتوايات المصفوفة لتصبح list فارغة من خلال دلة clear

friends = ["ahmed","hazem","mohamed","amr","yousef","khaled"]
print(friends)
print("----------------")
friends.clear()

print(friends)

من خلال الكلمة المحجوزة del يمكن حذف عنصر معين من list أو حذف list بالمتغير الذي يخزنها من الذاكرة ليصبح المتغير غير معرف

friends = ["ahmed","hazem","mohamed","amr","yousef","khaled"]
print(friends)
print("----------------")
del friends[4]
print(friends)
print("----------------")
del friends
print(friends)

نسخ و توريث List

يمكن إنشاء List جديدة من List قديمة أو يمكن توريث عناصر List الى List أخرى.
يمكن عمل نسخ من خلال دالة copy أو دالة list.

النسخ من خلال دالة copy

friends = ["ahmed","hazem","mohamed","amr"]
NewList = friends.copy()
print(NewList)

النسخ من خلال list

friends = ["ahmed","hazem","mohamed","amr"]
NewList = list(friends)
print(NewList)

النسخ من خلال العامل +

friends = ["ahmed","hazem","mohamed","amr"]
friends_online = ["mike","jon","sara"]
all_friends = friends + friends_online
print(all_friends)

التوريث من خلال الدوران for, توريث friends_online من friends

friends = ["ahmed","hazem","mohamed","amr"]
friends_online = ["mike","jon","sara"]

for x in friends_online:
 friends.append(x)

print(friends_online)

التوريث من خلال دالة extend

friends = ["ahmed","hazem","mohamed","amr"]
friends_online = ["mike","jon","sara"]

friends_online.extend(friends)
print(friends_online)

ترتيب العناصر List sort

يتم ترتيب العناصر إعتماداً على الحروف الأبجدية و الأرقام كترتيب طبيعي أو عكسي من خلال دالة sort , و يمكن عكس الترتيب من خلال العامل reverse

friends = ["ahmed","hazem","mohamed","amr","yousef","khaled"]

print("before sort")
print(friends)

friends.sort()
print("after sort")
print(friends)

friends.sort(reverse=True)
print("after reverse sort")
print(friends)

Comprehension list

يمكن إنشاء مصفوفة list أو إعتماداً على مصفوفة أخرى من خلال أسلوب comprehension وهو يعتمد على الدوران for و يمكن إستخدام if للتحقق من شرط معين.

إنشاء list  إعتماداً على range

newlist = [x for x in range(10)]
print(newlist)

إنشاء list بشرط أن تكون قيمة x أصغر من أو تساوي 5

newlist = [x for x in range(10) if x <= 5]
print(newlist)

إنشاء مصفوفة بجميع القيم التي تحتوي على حرف r من list أخرى

friends = ["ahmed","hazem","mohamed","amr","yousef","khaled","ramy"]
newlist = [x for x in friends  if "r" in x]
print(newlist)

إنشاء list تضم جميع العناصر معادا الذي قيمتة khaled

friends = ["ahmed","hazem","mohamed","amr","yousef","khaled","ramy"]
newlist = [x for x in friends if x != "khaled"]
print(newlist)

إنشاء list مطابق للمصفوفة friends مع جعل جميع أحرف الأسماء أحرف كبيرة

friends = ["ahmed","hazem","mohamed","amr","yousef","khaled","ramy"]
newlist = [x.upper() for x in friends]
print(newlist)

إنشاء قائمة مطابق للمصفوفة friends مع إضاقة نص hello بجوار كل إسم

friends = ["ahmed","hazem","mohamed","amr","yousef","khaled","ramy"]
newlist = ['hello '+x for x in friends]
print(newlist)

إنشاء قائمة مطابقة للمصفوفة friends مع تبديل قيمة amr بقيمة khaled

friends = ["ahmed","hazem","mohamed","amr","yousef","khaled","ramy"]
newlist = [x if x != "amr" else "khaled" for x in friends]
print(newlist)

الدوران في list

عرض العناصر من خلال for

thislist = ["apple", "banana", "cherry"]
for x in thislist:
  print(x)

عرض العناصر من خلال for إعتماداً على range

thislist = ["apple", "banana", "cherry"]
for i in range(len(thislist)):
  print(thislist[i])

عرض العناصر من خلال الدوران while

thislist = ["apple", "banana", "cherry"]
i = 0
while i < len(thislist):
  print(thislist[i])
  i = i + 1

عرض العناصر من خلال comprehension

thislist = ["apple", "banana", "cherry"]
[print(x) for x in thislist]

Leave a Reply