Python فهم القائمة، الإضافة، الفرز، الطول [أمثلة]
ما هو Python قائمة؟
القائمة هي بالضبط ما تبدو عليه، حاوية تحتوي على أشياء مختلفة Python الكائنات، والتي يمكن أن تكون أعدادًا صحيحة أو كلمات أو قيمًا وما إلى ذلك. وهي تعادل المصفوفة في لغات البرمجة الأخرى. يتم تمثيلها بواسطة أقواس مربعة (وهذه إحدى السمات التي تميزها عن الثنائيات، والتي يتم فصلها بواسطة أقواس). كما أنها قابلة للتغيير، أي يمكن تعديلها أو تحديثها؛ على عكس الثنائيات، التي لا يمكن تغييرها.
أحد أمثلة Python القوائم:
Python يمكن أن تكون القوائم متجانسة، بمعنى أنها يمكن أن تحتوي على نفس النوع من الكائنات؛ أو غير متجانسة، بما في ذلك أنواع مختلفة من الكائنات.
تتضمن أمثلة القوائم المتجانسة ما يلي:
list of integers = [1, 2, 3, 8, 33] list of animals = ['dog', 'cat', 'goat'] list of names = ['John', 'Travis', 'Sheila'] list of floating numbers = [2.2, 4.5, 9.8, 10.4]
تتضمن أمثلة القوائم غير المتجانسة ما يلي:
[2, 'cat', 34.33, 'Travis'] [2.22, 33, 'pen']
الوصول إلى القيم داخل القوائم
للوصول إلى القيم داخل القوائم، يمكن استخدام فهرس الكائنات الموجودة داخل القوائم. فهرس في Python تشير القوائم إلى موضع عنصر داخل قائمة مرتبة. على سبيل المثال:
list = [3, 22, 30, 5.3, 20]
- القيمة الأولى في القائمة أعلاه، 3، لها فهرس 0
- القيمة الثانية، 22، لها مؤشر 1
- القيمة الثالثة، 30، لديها مؤشر 2
وما إلى ذلك وهلم جرا. للوصول إلى كل قيمة من القائمة، يمكنك استخدام:
list[0] to access 3 list[1] to access 22 list[2] to access 30 list[3] to access 5.3 list[4] to access 20
يمكن أيضًا الوصول إلى آخر عضو في القائمة باستخدام الفهرس -1. على سبيل المثال،
list[-1] = 20
Python تقطيع القائمة
تقطيع القائمة هو طريقة لتقسيم مجموعة فرعية من القائمة، ويتم استخدام فهارس كائنات القائمة أيضًا لهذا الغرض. على سبيل المثال، باستخدام نفس مثال القائمة أعلاه؛
list[:] = [3, 22, 30, 5.3, 20] (all the members of the list]; list[1:3] = [22, 30] (members of the list from index 1 to index 3, without the member at index 3); list[:4] = [3, 22, 30, 5.3] (members of the list from index 0 to index 4, without the member at index 4) list[2:-1] = [30, 5.3] (members of the list from index 2, which is the third element, to the second to the last element in the list, which is 5.3).
Python تكون القوائم حصرية ذات الحد العلوي، وهذا يعني أنه يتم عادة تجاهل الفهرس الأخير أثناء تقسيم القائمة. هذا هو السبب
list[2:-1] = [30, 5.3]
، وليس [30، 5.3، 20]. وينطبق الشيء نفسه على جميع أمثلة تشريح القائمة المذكورة أعلاه.
تحديث القوائم
لنفترض أن لديك قائمة = [الفيزياء، الكيمياء، الرياضيات]، وتريد تغيير القائمة إلى [علم الأحياء، الكيمياء، الرياضيات]، مما يؤدي إلى تغيير العضو الموجود في الفهرس 0 بشكل فعال. ويمكن القيام بذلك بسهولة عن طريق تعيين هذا الفهرس إلى عضو جديد تريده
وهذا هو،
list = [physics, chemistry, mathematics]
list[0] = biology
print(list)
المخرجات: [علم الأحياء، الكيمياء، الرياضيات]
يؤدي هذا إلى استبدال العضو الموجود في الفهرس 0 (الفيزياء) بالقيمة الجديدة التي تريدها (الكيمياء). يمكن القيام بذلك لأي عضو أو مجموعة فرعية من القائمة التي تريد تغييرها.
ولنضرب مثالاً آخر؛ لنفترض أن لديك قائمة تسمى الأعداد الصحيحة وتحتوي على الأعداد [2، 5، 9، 20، 27]. ولاستبدال الرقم 5 في هذه القائمة بالرقم 10، يمكنك القيام بذلك باستخدام:
integers = [2, 5, 9, 20, 27]
integers[1] = 10
print(integers)
>>> [2, 10, 9, 20, 27]
لاستبدال العضو الأخير في قائمة الأعداد الصحيحة، وهو 27، برقم مجاني مثل 30.5، يمكنك استخدام:
integers = [2, 5, 9, 20, 27]
integers[-1] = 30.5
print(integers)
>>> [2, 5, 9, 20, 30.5]
حذف عناصر القائمة
هناك 3 Python طرق حذف عناصر القائمة: list.remove() وlist.pop() وعامل del. تأخذ طريقة Remove العنصر المحدد المراد إزالته كحجة بينما تأخذ pop وdel مؤشر العنصر المراد إزالته كحجة. على سبيل المثال:
القائمة = [3، 5، 7، 8، 9، 20]
لحذف 3 (العنصر الأول) من القائمة، يمكنك استخدام:
- list.remove(3) أو
- list.pop[0]، أو
- قائمة ديل[0]
لحذف 8، العنصر الموجود في الفهرس 3، من القائمة، يمكنك استخدام:
- list.remove(8)، أو
- قائمة.بوب[3]
إلحاق عناصر القائمة
لإلحاق عناصر بقائمة، يتم استخدام طريقة الإلحاق، وهذا يضيف العنصر إلى نهاية القائمة.
فمثلا:
list_1 = [3, 5, 7, 8, 9, 20]
list_1.append(3.33)
print(list_1)
>>> list_1 = [3, 5, 7, 8, 9, 20, 3.33]
list_1.append("cats")
print(list_1)
>>> list_1 = [3, 5, 7, 8, 9, 20, 3.33, "cats"]
قائمة الوظائف المضمنة (الطرق)
فيما يلي قائمة بالوظائف والطرق المضمنة مع أوصافها:
- لين (قائمة): وهذا يعطي طول القائمة كإخراج. على سبيل المثال:
numbers = [2, 5, 7, 9] print(len(numbers)) >>> 4
- الحد الأقصى (القائمة): إرجاع العنصر الموجود في القائمة بأقصى قيمة. على سبيل المثال:
numbers = [2, 5, 7, 9] print(max(numbers)) >>> 9
- الحد الأدنى (القائمة): إرجاع العنصر الموجود في القائمة بأقل قيمة. على سبيل المثال:
numbers = [2, 5, 7, 9] print(min(numbers)) >>> 2
- القائمة (الصفوف): يحول كائن Tuple إلى قائمة. على سبيل المثال؛
animals = (cat, dog, fish, cow) print(list(animals)) >>> [cat, dog, fish, cow]
- list.append(العنصر): إلحاق العنصر بالقائمة. على سبيل المثال؛
numbers = [2, 5, 7, 9] numbers.append(15) print(numbers) >>> [2, 5, 7, 9, 15]
- list.pop(الفهرس): إزالة العنصر الموجود في الفهرس المحدد من القائمة. على سبيل المثال؛
numbers = [2, 5, 7, 9, 15] numbers.pop(2) print(numbers) >>> [2, 5, 9, 15]
- قائمة.إزالة(العنصر): يحذف العنصر من القائمة. على سبيل المثال؛
values = [2, 5, 7, 9] values.remove(2) print(values) >>> [5, 7, 9]
- list.reverse(): يعكس كائنات القائمة. على سبيل المثال؛
values = [2, 5, 7, 10] values.reverse() print(values) >>> [10, 7, 5, 2]
- list.index(العنصر): للحصول على قيمة الفهرس لعنصر داخل القائمة. على سبيل المثال؛
animals = ['cat', 'dog', 'fish', 'cow', 'goat']
fish_index = animals.index('fish')
print(fish_index)
>>> 2
- مجموع(القائمة): للحصول على مجموع كل القيم في القائمة، إذا كانت القيم كلها أرقامًا (أعداد صحيحة أو عشرية). على سبيل المثال؛
values = [2, 5, 10] sum_of_values = sum(values) print(sum_of_values) >>> 17
إذا كانت القائمة تحتوي على أي عنصر ليس رقمًا، مثل سلسلة، فلن تعمل طريقة المجموع. سوف تحصل على خطأ قائلا: "خطأ مطبعي: أنواع المتعاملات غير المدعومة لـ +: 'int' و'str'”
- list.sort(): لترتيب قائمة من الأعداد الصحيحة أو الأرقام ذات الفاصلة العائمة أو السلاسل، بترتيب تصاعدي أو تنازلي. على سبيل المثال:
values = [1, 7, 9, 3, 5] # To sort the values in ascending order: values.sort() print(values) >>> [1, 3, 5, 7, 9]
مثال آخر:
values = [2, 10, 7, 14, 50] # To sort the values in descending order: values.sort(reverse = True) print(values) >>> [50, 14, 10, 7, 2]
يمكن أيضًا فرز قائمة السلاسل، إما أبجديًا، أو حسب طول السلاسل. على سبيل المثال؛
# to sort the list by length of the elements
strings = ['cat', 'mammal', 'goat', 'is']
sort_by_alphabet = strings.sort()
sort_by_length = strings.sort(key = len)
print(sort_by_alphabet)
print(sort_by_length)
>>> ['cat', 'goat', 'is', 'mammal']
['is', 'cat', 'goat', 'mammal']
يمكننا فرز نفس القائمة أبجديًا باستخدام "السلاسل".
مرحاضping من خلال القوائم
مرحاضping يمكن القيام بذلك من خلال القوائم بنفس طريقة أي قائمة أخرىping وظيفة في Python. بهذه الطريقة، يمكن تنفيذ الطريقة على عناصر متعددة من القائمة في نفس الوقت. على سبيل المثال:
القائمة = [10، 20، 30، 40، 50، 60، 70].
للتكرار عبر جميع عناصر هذه القائمة، دعنا نقول، أضف 10 إلى كل عنصر:
for elem in list:
elem = elem + 5
print(elem)
>>>>15
25
35
45
55
65
75
للتكرار خلال العناصر الثلاثة الأولى من القائمة، وحذفها جميعًا؛
for elem in list[:3]:
list.remove(elem)
>>>list = [40, 50, 60, 70]
للتكرار من خلال 3rd (الفهرس 2) إلى العنصر الأخير في القائمة، وإلحاقهم بقائمة جديدة تسمى new_list:
new_list = []
for elem in list[2:]:
new_list.append(elem)
print(“New List: {}”.format(new_list))
Output:
New List: [30, 40, 50, 60, 70]
بهذه الطريقة، يمكن تطبيق أي طريقة أو وظيفة على أعضاء القائمة لأداء عملية معينة. يمكنك إما المرور عبر جميع أعضاء القائمة، أو المرور عبر مجموعة فرعية من القائمة باستخدام تقسيم القائمة.
قائمة الفهم Python
قائمة الفهم هي Python الوظائف المستخدمة لإنشاء تسلسلات جديدة (مثل القوائم والقواميس وما إلى ذلك) باستخدام التسلسلات التي تم إنشاؤها بالفعل. فهي تساعد على تقليل الحلقات الأطول وتجعل قراءة التعليمات البرمجية الخاصة بك وصيانتها أسهل.
على سبيل المثال؛ لنفترض أنك تريد إنشاء قائمة تحتوي على مربعات جميع الأرقام من 1 إلى 9:
list_of squares = []
for int in range(1, 10):
square = int ** 2
list_of_squares.append(square)
print(list_of_squares)
List_of_squares using for loop:
[1, 4, 9, 16, 25, 36, 49, 64, 81]
لفعل الشيء نفسه مع فهم القائمة:
list_of_squares_2 = [int**2 for int in range(1, 10)]
print('List of squares using list comprehension: {}'.format(list_of_squares_2))
Output using list comprehension:
[1, 4, 9, 16, 25, 36, 49, 64, 81]
كما هو موضح أعلاه، فإن كتابة التعليمات البرمجية باستخدام فهم القائمة أقصر كثيرًا من استخدام حلقات for التقليدية، كما أنها أسرع أيضًا. هذا مجرد مثال واحد على استخدام فهم القائمة بدلاً من حلقات for، ولكن يمكن تكرار ذلك واستخدامه في الكثير من الأماكن حيث يمكن أيضًا استخدام حلقات for. في بعض الأحيان، يكون استخدام حلقة for هو الخيار الأفضل، خاصةً إذا كان الكود معقدًا، ولكن في العديد من الحالات، ستجعل فهم القائمة كتابة التعليمات البرمجية أسهل وأسرع.
يوجد أدناه جدول يحتوي على بعض وظائف القائمة وطرقها وأوصافها.
وظائف مدمجة
| FUNCTION | الوصف |
|---|---|
| مستدير() | لتقريب الرقم الذي تم تمريره كوسيطة إلى عدد محدد من الأرقام وإرجاع قيمة النقطة العائمة |
| دقيقة () | إرجاع الحد الأدنى من العناصر في قائمة معينة |
| الأعلى() | إرجاع الحد الأقصى لعنصر قائمة معينة |
| لين () | إرجاع طول القائمة |
| تعداد () | تولد هذه الوظيفة المضمنة كلاً من قيم وفهرس العناصر في كائن قابل للتكرار، لذلك لا نحتاج إلى العد يدويًا |
| منقي() | اختبارات إذا كان كل عنصر من عناصر القائمة صحيحًا أم لا |
| لامدا | تعبير يمكن أن يظهر في الأماكن التي لا يكون فيها def (لإنشاء الدوال) تركيبيًا، داخل قائمة حرفية أو وسيطات استدعاء الدالة |
| خريطة() | تقوم بإرجاع قائمة بالنتائج بعد تطبيق الوظيفة المحددة على كل عنصر من العناصر القابلة للتكرار |
| جمع() | تطبيق دالة معينة تم تمريرها في الوسيطة الخاصة بها على جميع عناصر القائمة، يُرجع قائمة تحتوي على النتائج الوسيطة |
| مجموع() | إرجاع مجموع كل الأرقام الموجودة في القائمة |
| كم () | يُستخدم هذا لمقارنة قائمتين وإرجاع 1 إذا كانت القائمة الأولى أكبر من القائمة الثانية. |
| إدراج | إدراج عنصر للقائمة في موضع معين |
طرق القائمة
| FUNCTION | الوصف |
|---|---|
| ألحق() | إضافة عنصر جديد إلى نهاية القائمة |
| واضح() | إزالة كافة العناصر من القائمة |
| ينسخ() | إرجاع نسخة من القائمة الأصلية |
| يمتد() | إضافة العديد من العناصر إلى نهاية القائمة |
| عدد() | إرجاع عدد مرات ظهور عنصر معين في القائمة |
| فِهرِس() | إرجاع فهرس عنصر محدد في القائمة |
| بوب () | حذف عنصر من القائمة في فهرس معين (الحذف حسب الموضع) |
| يزيل() | حذف عنصر محدد من القائمة (الحذف حسب القيمة) |
| Reverse() | طريقة الانعكاس الموضعي والتي تعمل على عكس ترتيب عناصر القائمة |
ملخص
- القائمة هي بالضبط ما تبدو عليه، حاوية تحتوي على أشياء مختلفة Python كائنات، والتي يمكن أن تكون أعدادًا صحيحة، أو كلمات، أو قيمًا، وما إلى ذلك.
- Python يمكن أن تكون القوائم متجانسة، أي أنها يمكن أن تحتوي على نفس النوع من الكائنات؛ أو غير متجانسة، أي تحتوي على أنواع مختلفة من الكائنات.
- للوصول إلى القيم داخل القوائم، يمكن استخدام فهرس الكائنات الموجودة داخل القوائم.
- تقطيع القائمة هو طريقة لتقسيم مجموعة فرعية من القائمة، ويتم استخدام فهارس كائنات القائمة أيضًا لهذا الغرض.
- هناك ثلاث طرق لحذف عناصر القائمة: 1)list.remove()، 2)list.pop()، و3)عامل الحذف
- يتم استخدام طريقة الإلحاق لإلحاق العناصر. يؤدي هذا إلى إضافة العنصر إلى نهاية القائمة.
- مرحاضping طريقة Python يمكن تنفيذ البرنامج على عناصر متعددة من قائمة البيانات في نفس الوقت.
- قائمة الفهم هي Python الوظائف المستخدمة لإنشاء تسلسلات جديدة (مثل القوائم والقواميس وما إلى ذلك) باستخدام التسلسلات التي تم إنشاؤها بالفعل.
