في بايثون، الصف هو نوع تسلسل غير قابل للتغيير. يتم تعريفه بشكل نحوي بواسطة زوج من الأقواس ()، ويتم فصل العناصر الداخلية بفواصل. على عكس القوائم، لا يمكن تعديل الصف بمجرد إنشائه، مما يعني أنه لا يمكنك إضافة عناصر أو حذفها أو تغييرها داخل الصف. هذا الثبات يجعل الصفوف أكثر ملاءمة من القوائم في سيناريوهات معينة، مثل مفاتيح القاموس أو قيم إرجاع الوظائف.
ثبات الصفوف يجلب بعض المزايا. أولاً، نظرًا لأنها غير قابلة للتغيير، يمكن الوصول إلى الصفوف بأمان من خلال سلاسل عمليات متعددة في بيئة متعددة المهام. ثانيًا، يمكن للصفوف أن توفر مساحة أكبر من القوائم لأن بايثون تقوم ببعض التحسينات على تسلسلات غير قابلة للتغيير. مرة أخرى، يمكن استخدام استخدام الصفوف عندما لا ينبغي تعديل التسلسل كإجراء وقائي لمنع تغييره عن طريق الخطأ.
يعد إنشاء صف أمرًا بسيطًا، ما عليك سوى إضافة القيم بين قوسين والفصل بينها بفواصل. إذا كنت تريد إنشاء صف فارغ، يمكنك كتابة زوج بين قوسين بدون محتوى مثل (). يتطلب الصف المكون من عنصر واحد فاصلة بعد العنصر، مثل (العنصر،)، حتى تتمكن بايثون من التعرف عليه على أنه صف.
إحدى طرق إنشاء صف هي تغليف مجموعة من القيم مباشرة بين قوسين، على سبيل المثال:
my_tuple = (1، 2، 3)
إذا كانت العناصر الموجودة في المجموعة محددة بالفعل، فيمكننا تحديدها مباشرة عندما نقوم بإنشائها في البداية.
يدعم Tuple أيضًا عملية تسمى "التفريغ"، والتي تقوم بتعيين القيم الموجودة داخل الصف إلى متغيرات مختلفة. على سبيل المثال:
أ، ب، ج = my_tuple
هذه الطريقة ملائمة جدًا لتعيين متغيرات متعددة في نفس الوقت في سطر واحد من التعليمات البرمجية.
بمجرد إنشاء الصف، لا يمكن تغيير عناصره. هذا يعني أنه لا يمكنك إضافة عناصر إلى صف موجود، أو إزالة عناصر منه، أو تغيير عناصره.
الثبات يجعل الصفوف "الإصدار الثابت" للتسلسل. نظرًا لأن الصفوف غير قابلة للتغيير، فيمكن استخدامها على نطاق واسع في بايثون كمخزن ثابت للبيانات. بالإضافة إلى ذلك، يمكن غالبًا استخدام الأنواع غير القابلة للتغيير كمفاتيح قاموس، وهو أمر لا تستطيع الأنواع القابلة للتغيير مثل القوائم القيام به.
على الرغم من أن التعديل المباشر للعناصر داخل الصف غير مسموح به، إذا كان الصف يحتوي على كائنات قابلة للتغيير (مثل القوائم)، فلا يزال بإمكانك تعديل هذه الكائنات القابلة للتغيير. على سبيل المثال:
ر = (1، 2، [3، 4])
t[2][0] = 100 # هذه العملية صالحة لأن القائمة معدلة والقائمة متغيرة.
على الرغم من أنه لا يمكن تعديل الصف، إلا أنه يمكنك تنفيذ العمليات الأساسية مثل حساب أطوال الصف وتسلسل الصف وتكراره والتحقق من العضوية.
يمكنك الحصول على طول الصف باستخدام الدالة len() المضمنة. كل عنصر في الصف له فهرس يبدأ من 0 ويتزايد، ويمكن الوصول إلى عناصر الصف من خلال الفهرس.
يمكنك تسلسل صفوف متعددة باستخدام عامل التشغيل + وتكرار المجموعات باستخدام عامل التشغيل *. على سبيل المثال:
t1 = (1، 2، 3)
t2 = (4، 5، 6)
t3 = t1 + t2 # (1، 2، 3، 4، 5، 6)
t4 = t1 * 3 # (1، 2، 3، 1، 2، 3، 1، 2، 3)
نظرًا لعدم قابلية التغيير للصفوف، غالبًا ما يتم استخدامها لقيم إرجاع الوظائف. خاصة عندما تريد أن تقوم دالة بإرجاع قيم متعددة، فإن الصفوف تكون مفيدة.
عندما تحتاج الدالة إلى إرجاع قيم متعددة، فإن استخدام إرجاع الصف هو طريقة مختصرة للغاية. على سبيل المثال:
مواطنه min_max (الأعداد):
الحد الأدنى (الأعداد)، الحد الأقصى (الأعداد)
عند استدعاء دالة مثل هذه، يمكنك استخدام التفريغ مباشرة للحصول على القيم المتعددة التي تم إرجاعها:
مليون، مكس = min_max(أرقام)
يتم استخدام الصفوف في مجموعة واسعة من التطبيقات في بايثون، بدءًا من تخزين بنية البيانات البسيطة وحتى معلمات الوظائف وقيم الإرجاع، وتلعب الصفوف دورًا مهمًا.
تعتبر الصفوف بطبيعتها بنية جيدة لتخزين السجلات. على سبيل المثال، يمكنك استخدام صف لتخزين اسم الموظف ورقم وظيفته.
عندما تريد أن تظل المعلمات الموجودة داخل دالة دون تغيير، فإن استخدام الصف بدلاً من القوائم يعد خيارًا جيدًا لأن البيانات الموجودة داخل الصف لا يمكن تعديلها.
يتم استخدام الصفوف على نطاق واسع في سيناريوهات مختلفة في بايثون بسبب بساطتها وكفاءتها، مما يوفر المرونة للبرامج مع ضمان سلامة البيانات وثباتها. يعد فهم وإتقان استخدام الصفوف أمرًا مهمًا جدًا لبرمجة بايثون.
1. ما هو Tuple في بايثون؟ كيفية إعلان وتهيئة Tuple؟
Tuple هو نوع بيانات في لغة Python، وهو تسلسل مرتب وغير قابل للتغيير. على عكس القائمة، لا يمكن تعديل العناصر الموجودة في الصف. للإعلان عن صف وتهيئته، ضع العناصر بين قوسين وافصل بينها بفواصل. على سبيل المثال، tuple1 = (1، 2، 3) عبارة عن صف يحتوي على ثلاثة عناصر صحيحة.
2. كيف يمكنني الوصول إلى العناصر ومعالجتها في الصف؟
يمكن الوصول إلى العناصر الموجودة في الصف باستخدام الفهارس. تبدأ الفهارس من 0، ويمكن استخدام الفهارس الموجبة والسالبة. على سبيل المثال، tuple1[0] يُرجع العنصر الأول، وtuple1[-1] يُرجع العنصر الأخير. بالإضافة إلى ذلك، يمكن استخدام الشرائح للوصول إلى مجموعات فرعية من الصفوف. على سبيل المثال، tuple1[1:3] سيعيد الصف الفرعي من العنصر الثاني إلى العنصر الرابع.
نظرًا لأن الصف غير قابل للتغيير، فلا يمكن إضافة عناصر أو إزالتها من الصف. ومع ذلك، إذا كانت العناصر الموجودة داخل المجموعة قابلة للتغيير (مثل القائمة)، فيمكن تعديلها. على سبيل المثال، tuple2 = ([1, 2, 3], 'a', 'b')، يمكنك تعديل عناصر القائمة في tuple2[0].
3. كيفية استخدام خصائص الصفوف لكتابة تعليمات برمجية فعالة في بايثون؟
تتمتع Tuples بالعديد من الخصائص التي توفر كفاءة وبساطة إضافية عند كتابة كود Python. أولاً، لا يمكن تعديل الصفوف بعد الإنشاء، مما يعني أنها آمنة في البيئات متعددة الخيوط. ثانيًا، يمكن استخدام الصفوف كمفاتيح قاموس، لكن لا يمكن استخدام القوائم. بالإضافة إلى ذلك، يمكن أيضًا استخدام الصفوف كمعلمات دالة وقيم إرجاع لتمرير قيم متعددة بسهولة. تجعل هذه الخصائص المجموعات أكثر فائدة في المواقف التي تتطلب كائنات غير قابلة للتغيير، مثل استخدام المجموعات كمفاتيح في الخريطة أو جدول التجزئة. عندما تحتاج إلى استخدام كائنات غير قابلة للتغيير في التعليمات البرمجية الخاصة بك، فكر في استخدام الصفوف لتحسين إمكانية قراءة التعليمات البرمجية والأداء.