ما هو الفرق بين القائمة و Tuple؟

نشرت: 2021-11-28

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

ستتعمق هذه المقالة في الاختلافات الرئيسية بين list و tuple واستكشاف حالات استخدامها. لكن أولاً ، دعنا نلقي نظرة سريعة على أوجه التشابه الأساسية بينهما:

  • يمكنك تخزين العناصر والعناصر من جميع أنواع البيانات في كل من المجموعات والقوائم.
  • يسمح كل من tuple و list بالوصول إلى البيانات باستخدام الفهرس الخاص بهما.
  • يمكن لكلا النوعين من البيانات تجميع وفهرسة مجموعة متنوعة من عناصر البيانات.

جدول المحتويات

Python Tuple vs List

1. الاختلافات النحوية

يختلف إعلان القوائم و tuple دائمًا في Python. يتم التصريح عن القوائم باستخدام الأقواس المربعة "[]" ، بينما يتم التصريح عن المجموعات باستخدام "()".

فيما يلي مثال لفهم كيفية التصريح عن القوائم والمجموعات في Python بشكل أفضل.

list_num = [7،8،9،10]

tup_num = (10،11،13،14)

طباعة (list_num)

طباعة (tup_num)

سيكون الإخراج إلى هذا التسلسل.

[7،8،9،10]

(10،11،13،14)

في هذا المثال ، يتم تعريف متغير يسمى list_num والذي يستوعب الأرقام من 7 إلى 10. ونرى أيضًا أن الإخراج محاط بأقواس مربعة. ومع ذلك ، فإن المتغير المعرف بـ tup_num ويحمل الأرقام من 10 إلى 14 يعرض مخرجات باستخدام الأقواس.

تستخدم Python وظيفة type () التي تساعدنا على فهم نوع العناصر التي تم إنشاؤها.

print (type (tup_num))

print (type (list_num))

انتاج:

<class 'tuple'>

<فئة 'قائمة'>

2. قابلية التغيير (متغير مقابل ثابت)

المجموعات والقوائم متناقضة عندما يتعلق الأمر بقابليتها للتغيير. المجموعات هي هياكل ثابتة لا يمكن تعديلها أو تغييرها بعد إنشائها. على العكس من ذلك ، القوائم عبارة عن هياكل قابلة للتغيير يمكن تغييرها أو تعديلها بسهولة بعد إنشائها.

يمكن استخدام tuple فقط كمفتاح للقواميس بسبب طبيعتها الثابتة. لا يمكن استخدام القوائم كمفاتيح عند الحاجة.

3. تغيير كائن (قائمة مقابل Tuple)

دعونا نتعرف على ما يحدث عندما يتم إنشاء محاولة لإجراء تغيير في القائمة.

الاسم = [اليكس ، ريك ، مارتن]

الاسم [0] = "روكسي"

ملاحظة : يُشار دائمًا إلى العنصر الأول بالرمز 0 وليس 1.

الآن دعونا نلقي نظرة على الشكل الذي سيبدو عليه الإخراج بعد الأمر التالي:

>>> الاسم

انتاج:

[روكسي ، ريك ، مارتن]

يوضح الإخراج كيف تغير العنصر الأول في القائمة.

لنرى الآن ماذا ستكون النتيجة إذا تم استخدام بنية tuple.

الاسم = (أليكس ، ريك ، مارتن)

عندما يتم تغيير عنصر في المجموعة باستخدام

الاسم (0) = "روكسي"

سيكون الإخراج:

TypeError: كائن "tuple" لا يدعم تعيين العنصر.

هذا يعني أن بنية البيانات tuple لا تدعم كائنًا تم تغييره لاحقًا. لذلك ، يمكننا أن نستنتج أنه يمكن تعديل القوائم فقط وليس الصفوف.

4. النسخ مقابل المعاد استخدامها

لا يمكن نسخ المجموعات. السبب هنا هو طبيعة المجموعات الثابتة. على سبيل المثال ، إذا قمت بتشغيل tuple (tup_name) ، فسترى أنه قد تمت استعادته إلى نفسه.

مثال:

الأسماء = ("ألين" ، "سيري" ، "ميكايلا")

copyNames = tuple (أسماء)

طباعة (الأسماء هي نسخ الأسماء)

سيكون الإخراج هنا - "صحيح".

على العكس من ذلك ، إذا حاولت وفعلت الشيء نفسه لقائمة ، (كما هو موضح في المثال):

مثال:

أسماء = ["ألين" ، "سيري" "ميكايلا"]

copyNames = قائمة (أسماء)

طباعة (الأسماء هي نسخ الأسماء)

سيظهر الناتج على أنه "خطأ".

سيكون عليك نسخ ولصق الأسماء الكاملة في القائمة الجديدة للحصول على ناتج حقيقي.

5. Python Tuple vs List | اختلافات الحجم

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

6. متجانسة مقابل متجانسة

يمكن لـ Tuples تخزين عناصر من أنواع مختلفة غير متجانسة. على العكس من ذلك ، يمكن للقوائم تخزين الميزات أو البيانات المتجانسة من نفس المتغير.

هذا ، مع ذلك ، ليس سوى اختلاف دلالي. على سبيل المثال ، يمكن للقوائم تخزين بيانات من أنواع مختلفة ، ويمكن أيضًا أن تخزن المجموعات بيانات من نفس النوع.

مثال:

list_elements = ['allen'، 20، 'mary']

tuple_elements = ("ألين" ، "ماري" ، "أليكس")

سيتم تشغيل الكود بسلاسة ، على الرغم من أن القائمة تحتوي على مجموعة من الأرقام والسلاسل.

7. طول الفروق

تختلف القوائم والجُداول أيضًا في الطول والحجم. بينما يختلف طول tuple ، يكون طول tuple ثابتًا. لذلك ، يمكن تغيير حجم القوائم في أي وقت ، على عكس طول المجموعات التي تظل ثابتة بمجرد تحديدها.

مثال:

list_names = ['allen'، 'mary'، 'alex']

list_names.append (“roxy”)

طباعة (list_names)

انتاج:

['allen'، 'mary'، 'alex'، 'roxy']

كان من الممكن أيضًا تحقيق الإخراج الدقيق باستخدام الوظيفة insert () بدلاً من الوظيفة append () عندما يتعلق الأمر بالقوائم.

ومع ذلك ، فإن بنية البيانات tuple لا توفر لنا أي طرق لتغيير حجمها.

8. يستخدم الحالات

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

تعتبر المجموعات أكثر أهمية بكثير مثل هياكل البيانات عند مقارنتها بالقوائم للأسباب التالية:

  • يمكن أن يؤدي استخدام tuples بدلاً من القوائم إلى إعلام المبرمج أو مترجم البيانات بعدم تغيير المعلومات.
  • يمكنك أيضًا استعادة البيانات بدون مفاتيح باستخدام tuple.
  • تعادل Tuple القواميس في Python.
  • من السهل جدًا قراءة المجموعات المخزنة داخل قائمة.

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

مثال:

key_val = {('alex'، 'brave'): 124} #Valid

key_val = {['alex'، 'brave']: 124} #Invalid

9. قوائم متداخلة و Tuples

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

10. التصحيح

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

11. وظائف وعمليات

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

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

الماخذ الرئيسية

  • تحتوي المجموعات على وظائف أقل من القوائم.
  • هيكل المجموعة غير قابل للتغيير ، في حين أن هيكل القوائم قابل للتغيير.
  • تأتي المجموعات بأطوال ثابتة ، بينما يمكن أن يختلف طول القوائم.
  • يتم تمثيل صيغة القائمة بأقواس مربعة "[]" ، في حين يتم تقديم صيغة المجموعات في شكل قوسين "()".
  • يستهلك Tuples ذاكرة أقل مقارنة بالقوائم.
  • تكون بنية البيانات tuple هي الأفضل عند تضمين الوصول إلى العناصر.
  • تعد قائمة الوظائف أفضل في أداء عمليات محددة للحذف والإدراج.
  • التكرارات المتضمنة في المجموعات أسرع من التكرارات المتضمنة في القوائم.
  • قد تحتوي القائمة على عدة طرق مبنية ، في حين أن المجموعة لا تحتوي على أي طرق.

تعلم بالتفصيل عن التفاصيل الجوهرية في بايثون ومفاهيمها المتقدمة من خلال ماجستير العلوم في علوم البيانات من upGrad لمدة 18 شهرًا برنامج بالتعاون مع جامعة ليفربول جون مورس و IIIT بنغالور. مع وجود هيئة تدريس رائدة في الصناعة تحت تصرفك ، وأكثر من 500 ساعة من المواد التعليمية وفصول حل الشك ، فإن الطلاب لديهم فرصة لإتقان بايثون وأساسيات علوم البيانات الأخرى لتوجيه حياتهم المهنية وفقًا لذلك. بالإضافة إلى ذلك ، يساعد البرنامج في تطوير الكفاءة بأكثر من 14 لغة وأدوات مثل Tableau و MySQL و Excel و MongoDB والمزيد.

لذا لا تتردد. تواصل معنا اليوم!

متى تستخدم المجموعات أو القوائم؟

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

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

هل tuple أسرع مقارنة بالقوائم؟

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

أين يتم استخدام المجموعات والقوائم في الحياة الواقعية؟

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