كيف تعمل المصفوفات والقوائم في بايثون

كيف تعمل المصفوفات والقوائم في بايثون

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





المتطلبات الأساسية

ليس هناك الكثير الذي تحتاج إلى معرفته مسبقًا لتعلم هذه المفاهيم. ستكون المعرفة الأساسية بنماذج البرمجة و Python مفيدة ، لكنها ليست مطلوبة. اقرأ أمثلة بايثون الأساسية إذا كنت لا تعرف من أين تبدأ. إذا كنت تعتقد أن لغة Python هي لغة غير مجدية ، فتحقق من أسباب عدم وجودها.





بينما يمكن تطبيق الأفكار الأساسية التالية على أي لغة ، سأقوم بشرح الأمثلة في بايثون. إنها لغة سهلة التعلم وتوفر منصة ممتازة لفهم ما يجري. بالإضافة إلى ذلك ، tutorialspoint.com يوفر مترجم Python الفوري عبر الإنترنت - لست مضطرًا حتى إلى تثبيت Python إذا كنت لا ترغب في ذلك (إذا كنت ترغب في ذلك ، فراجع دليلنا عن البيئات الافتراضية).





هياكل البيانات

ما هو ملف هيكل البيانات ؟ في أبسط مستوياتها ، تعتبر بنية البيانات وسيلة لتخزين البيانات بكفاءة. من السهل الخلط لأن هياكل البيانات ليست كذلك أنواع البيانات . تخبر أنواع البيانات المترجم (أو المترجم في حالة بايثون) كيف يُراد استخدام البيانات. تحدد هياكل البيانات العمليات التي يمكن إجراؤها ، وغالبًا ما تطبق قواعد ولوائح محددة.

ربما سمعت عن البعض خطي أنواع البيانات (العناصر متسلسلة):



  • مجموعة مصفوفة
  • مصفوفة
  • جدول البحث

بصورة مماثلة، القوائم غالبًا ما تحتوي على قواعد وطرق لتنظيم كيفية عملها. بعض القوائم الشائعة هي:

  • قائمة مرتبطة
  • قائمة مرتبطة بشكل مضاعف
  • قائمة الصفيف أو الصفيف الديناميكي

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





مجموعة مصفوفة

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

تعقد بايثون الأمور إلى حد ما. إنه يجعل الأمور سهلة للغاية بالنسبة لك ، لكنه لا يلتزم دائمًا بالتعريفات الصارمة لهياكل البيانات. عادةً ما تكون معظم الكائنات في Python عبارة عن قوائم ، لذا فإن إنشاء مصفوفة هو في الواقع مزيد من العمل. إليك بعض التعليمات البرمجية للمبتدئين:





from array import array
numbers = array('i', [2, 4, 6, 8])
print(numbers[0])

يستورد السطر الأول ملف مجموعة مصفوفة الوحدة النمطية - وهذا مطلوب للعمل مع المصفوفات. السطر الثاني ينشئ مصفوفة جديدة تسمى أعداد ويقوم بتهيئته بالقيم 2 و 4 و 6 و 8. يتم تعيين كل عنصر على عدد صحيح قيمة تسمى أ مفتاح أو فهرس . تبدأ المفاتيح من صفر ، وبالتالي أرقام [0] سيصل إلى العنصر الأول ( 2 ):

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

ماذا يعني هذا الملحق غير مدعوم

لا يمكنك تخزين أنواع مختلطة في هذه المصفوفات. لنفترض أنك تريد تخزين السلسلة 'makeuseof.com':

numbers = array('i', [2, 4, 6, 'makeuseof.com'])

لن يُسمح بهذا وسيؤدي إلى استثناء:

إليك كيف يمكنك طباعة جميع العناصر:

print(numbers)

تعمل طريقة الوصول إلى عناصر المصفوفة بشكل جيد ، وهي مثالية للمهمة الصحيحة. الشيء غير الجيد هو الوصول إلى المصفوفة بأكملها. المبرمجون كسالى بطبيعتهم ، لذلك سأكون سعيدًا بكتابة كود أكثر وأفضل ، إذا كان ذلك يعني أنه يمكنني جعل الصيانة أسهل ، وتقليل جهد النسخ واللصق.

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

for number in numbers:
print(number)

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

for i in range(len(numbers)):
print(numbers[i])

هذا يفعل نفس الشيء تمامًا مثل المثال السابق ، على الرغم من أنه كان عليك تحديد عدد العناصر في المصفوفة ( لين (سيارات) ) ، إلى جانب التمرير أنا كمفتاح للمصفوفة. هذا هو تقريبا بالضبط رمز ذلك في حلقات تشغيل. توفر هذه الطريقة مزيدًا من المرونة قليلاً ، وهي أسرع قليلاً (بالرغم من ذلك في الحلقات أكثر من سريعة بما فيه الكفاية غالبية من الوقت.)

القوائم

الآن بعد أن عرفت كيفية عمل المصفوفات ، دعنا نلقي نظرة على القائمة. قد يكون الأمر محيرًا في بعض الأحيان ، حيث يستخدم الأشخاص مصطلحات وقوائم مختلفة بالتبادل نكون المصفوفات ... نوع من.

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

كيف تجعل memoji الخاص بك يتحدث
cars = ['Ford', 'Austin', 'Lancia']

لاحظ كيف أنك لست بحاجة إلى استيراد ملف مجموعة مصفوفة وحدة؟

يوضح هذا النحو قائمة تسمى السيارات. داخل الأقواس المربعة ، يتم التصريح عن كل عنصر من عناصر القائمة. يتم فصل كل عنصر بفاصلة ، وبما أن كل عنصر عبارة عن سلسلة ، فإنك تعلنها داخل علامتي اقتباس. تعرف Python أن هذا كائن ، لذا فإن ملف مطبعة بيان سوف يخرج محتوى القائمة:

print(cars)

كما هو الحال مع المصفوفة ، يمكنك تكرار عناصر القائمة باستخدام الحلقات:

for car in cars:
print(car)

الحيلة الحقيقية للقوائم هي النوع المختلط. انطلق وأضف بعض البيانات الإضافية:

cars = ['Ford', 'Austin', 'Lancia', 1, 0.56]

هذه ليست مشكلة لبايثون - حتى أنها لم تثير استثناء:

من السهل إضافة عناصر جديدة إلى قائمة (شيء غير ممكن في المصفوفات):

cars = ['Ford', 'Austin']
print(cars)
cars.append('Lancia')
print(cars)

يمكنك أيضًا دمج قائمتين في قائمة واحدة:

cars = ['Ford', 'Austin']
print(cars)
other_cars = ['Lotus', 'Lancia']
cars.extend(other_cars)
print(cars)

من السهل إزالة العناصر باستخدام ملف إزالة بناء الجملة:

cars = ['Ford', 'Austin', 'Lotus', 'Lancia']
print(cars)
cars.remove('Ford')
print(cars)

يغطي هذا حول أساسيات القوائم والمصفوفات في بايثون. لماذا لا تفكر في مشروع ترميز ، مثل القراءة والكتابة إلى جداول بيانات Google ، وقراءة بيانات json. ربما يمكنك استخدام مهاراتك الجديدة في صنع بعضها أزرار الاختصار المخصصة . على الرغم من كونها لغة برمجة مختلفة ، إلا أن مبادئ المصفوفة هذه لا تزال سارية.

يشارك يشارك سقسقة بريد الالكتروني 5 نصائح لزيادة كفاءة أجهزة VirtualBox Linux الخاصة بك

هل سئمت من الأداء الضعيف الذي تقدمه الأجهزة الافتراضية؟ إليك ما يجب عليك فعله لتعزيز أداء VirtualBox الخاص بك.

اقرأ التالي
مواضيع ذات صلة
  • برمجة
  • برمجة
  • بايثون
نبذة عن الكاتب جو كوبيرن(تم نشر 136 مقالاً)

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

المزيد من Joe Coburn

اشترك في نشرتنا الإخبارية

انضم إلى النشرة الإخبارية لدينا للحصول على نصائح تقنية ومراجعات وكتب إلكترونية مجانية وصفقات حصرية!

انقر هنا للاشتراك