في الدراسة السابقة، يمكنك أن تجد أن القوائم موجودة في كل مكان، كما لو أن بناء جملة Python يدور حول القوائم. سيقدم هذا القسم القوائم بالتفصيل، والتي يعتبرها معظم مستخدمي Python الجزء الأساسي من Python، لأن قائمة Python مهمة للغاية قوية، والعديد من عملياتنا تعتمد على القائمة.
أولاً، دعنا نقدم القائمة . القائمة عبارة عن كائن يمكن أن يحتوي على أنواع بيانات متعددة، ويمكن تغيير المحتوى الموجود في القائمة، وهو عبارة عن بنية بيانات ديناميكية، ويمكننا إضافتها أو حذفها في القائمة لا يمكن فصله عن استخدام الفهارس.
في الواقع، يمكنك رؤية تعريفنا للقائمة عدة مرات من قبل. في Python، لا يمكننا ببساطة تحديد اسم متغير. على سبيل المثال، إذا أردنا استخدام قائمة بعد ذلك، فلا يمكننا تحديد my_list أولاً ثم المتابعة أو شيء من هذا القبيل لذا فإن الطريقة التي نحدد بها القائمة هي:
my_liss=[]#حدد قائمة فارغة my_list=[1,2,3,4,5,6]#حدد قائمة بالقيم الموجودة my_lizz=['a','b','c','d ']
يمكننا أن نفكر في القائمة كنوع من الحاويات. نستخدمها لتخزين الأشياء، ويمكننا تخزين نفس النوع من البيانات أو أنواع مختلفة من البيانات فيها، ومع ذلك، فمن المستحسن تحسين إمكانية قراءة البرنامج لتخزين نفس النوع من البيانات في نوع البيانات.
في بعض الأحيان نحتاج إلى إنشاء قائمة بقيمة معينة، لكننا لا نريد إدخالها يدويًا، حتى نتمكن من استخدام وظيفة list() لتداخل وظيفة range() لإنشائها مباشرة.
لا تستطيع الدالة list() إجراء تحويل النوع القسري لتحويل السلاسل أو المجموعات إلى قوائم فحسب، بل يمكنها أيضًا استخدام طريقة القائمة عند التعريف.
على سبيل المثال:
نريد إنشاء قائمة تحتوي على أرقام من 1 إلى 10، ثم يمكننا استخدام الطريقة التالية:
my_list=list(range(1,11))طباعة(my_list)
الإخراج هو:
[1،2،3،4،5،6،7،8،9،10]
بهذه الطريقة يمكننا إنشاء قائمة بما نريد بسرعة.
يتم حذف القائمة باستخدام عبارة del. التنسيق هو:
delmy_list
انظر إلى المثال التالي:
my_list=[]delmy_list#احذف هذه القائمة التي تم إنشاؤها print(my_list)#حاول إخراجها
الإخراج هو:
FileD:/python/p/test.py,line3,in<module>print(my_list)NameError:name'my_list'isnotتعريف
من خلال رسالة الخطأ يمكننا معرفة أن القائمة التي قمنا بإنشائها قد تم حذفها.
في بعض الأحيان نحتاج إلى عمل نسخة من القائمة، وفي هذا الوقت نحتاج إلى نسخ العناصر الموجودة في القائمة، يمكننا التفكير في الأمر أولاً، إذا قمنا بتعريف قائمة أولاً، ثم حددنا قائمة، فلنجعل القائمة الثانية متساوية إلى القائمة الأولى، بعد أن قمنا بتعديل القيم في القائمة الأولى، هل ستتغير القيم في القائمة الثانية؟
انظر إلى الكود أدناه:
first_list=[1,2,3,4]#حدد أولاً قائمة Second_list=first_list# انسخ هذه القائمة print('قبل التعديل (القائمة الأولى والقائمة الثانية):', first_list,',', Second_list) #Output خذ a انظر إلى first_list [0]=10print('بعد التعديل (القائمة الأولى والقائمة الثانية):',first_list,',', Second_list)# انظر إلى الإخراج مرة أخرى print(id(first_list),id( Second_list))# مرت بالوصول إلى ID، يمكنك أن تجد أن عنواني القائمة متماثلان.
الإخراج هو:
قبل التعديل (القائمة الأولى والقائمة الثانية): [1,2,3,4], [1,2,3,4] بعد التعديل (القائمة الأولى والقائمة الثانية): [10, 2,3,4],[ 10,2,3,4]26239519545042623951954504
ويمكن ملاحظة أن القائمة الثانية المنسوخة تم تعديلها أيضًا بعد تعديل قيمة العنصر في القائمة الأولى، مما يشير إلى أنهم يستخدمون نفس القائمة.
نلقي نظرة على الرسم البياني:
بمعنى آخر، يستخدم المتغيران نفس القائمة في الذاكرة، بغض النظر عن العنصر الذي تم تعديله في القائمة، فإن القائمة المقابلة هي نفسها.
إذا كنت تريد استخدام القوائم التي تحتوي على نفس المحتوى ولكن بشكل مستقل، فيمكنك استخدام الطريقة التالية:
first_list=[1,2,3,4]#حدد أولاً قائمة Second_list=[]+first_list# استخدم الرابط print(id(first_list),id( Second_list))# من خلال الوصول إلى المعرف، يمكنك أن تجد أن الاثنين القوائم مستقلة عن بعضها البعض
الإخراج هو:
18998579287761900113448584
فيما يتعلق بالقوائم، قد يبدو هذا البرنامج التعليمي مطولًا جدًا مقارنة بالبرامج التعليمية الأخرى، ولكن يجب على الجميع أن يفهموا أن جوهر بنية بيانات بايثون هو القائمة، بعد دراسة جميع جوانب القائمة بدقة، بغض النظر عما إذا كانت القائمة هي المنافسة أو تطوير المشروع، فهي ذات فائدة كبيرة، لذا فإن تعلم القائمة مهم جدًا.