بايثون هي واحدة من لغات البرمجة الأكثر شعبية التي تستخدم على نطاق واسع لمختلف المهام. هناك أنواع مختلفة من البيانات في بيثون ، واثنان منهم قائمة و توبل. يتم استخدام كلا النوعين من البيانات لتخزين ومعالجة مجموعات الكائنات ، ولكن لهما خصائصهما واختلافاتهما الخاصة.
القائمة في بايثون هي نوع بيانات قابل للتغيير يمكن أن يحتوي على أي عناصر. تسمح لك القوائم بإضافة العناصر وإزالتها وتعديلها ، مما يجعلها ملائمة جدا للعمل مع مجموعات البيانات الديناميكية. ومع ذلك ، قد تستغرق عمليات تعديل القائمة وقتا أطول ، خاصة إذا كانت القائمة تحتوي على عدد كبير من العناصر.
على عكس القائمة ، توبل (توبل) هو نوع بيانات غير قابل للتغيير. هذا يعني أنه بمجرد الإنشاء ، لا يمكن تغيير المجموعة. وبسبب هذا ، توبل أسرع قليلا من القائمة ، وخاصة عند تنفيذ عمليات للقراءة فقط. يمكن أن تكون الصفوف مفيدة عندما تحتاج إلى حماية البيانات من التعديل أو استخدامها كمفاتيح ثابتة في القواميس والمجموعات.
لأن توبل هو نوع بيانات غير قابل للتغيير ، لديها بعض مزايا الأداء على قائمة قابلة للتغيير. ومع ذلك ، هذا لا يعني دائما أن المجموعة ستكون دائما أسرع. كل هذا يتوقف على الوضع المحدد ومتطلبات البرنامج.
- بايثون: مقارنة سرعة القائمة والصفوف
- الاختلافات بين القائمة والصفوف
- مزايا استخدام القائمة
- مزايا استخدام توبل
- أمثلة على استخدام القائمة
- أمثلة استخدام المجموعة
- سؤال وجواب
- ما هي قائمة وتبل في بيثون?
- ما هو الفرق بين القائمة والصفوف في بايثون?
- أي نوع من البيانات هو أسرع في بيثون: قائمة أو توبل?
- في الحالات التي يكون من الأفضل استخدام قائمة, وفي أي الحالات هو توبل في بيثون?
- أي بنية البيانات أسرع لإجراء عمليات البحث: قائمة أو مجموعة في بايثون?
بايثون: مقارنة سرعة القائمة والصفوف
قائمة و توبل هما هياكل البيانات الرئيسية في لغة البرمجة بيثون. كلاهما يستخدم لتخزين وإدارة مجموعات من القيم لأنواع البيانات المختلفة. ومع ذلك ، هناك بعض الاختلافات في تنفيذها وأدائها والتي قد تؤثر على الاختيار بينهما.
القائمة هي بنية بيانات قابلة للتغيير ، مما يعني أنه يمكن تغيير عناصرها بعد إنشائها. هذا يجعلها مريحة للغاية لإضافة وإزالة وتعديل العناصر داخله. ومع ذلك ، فإن هذه المرونة تجلب بعض التكلفة للأداء. عند إضافة عناصر أو إزالتها من القائمة ، قد يكون من الضروري إعادة بناء بنية البيانات بالكامل ، مما قد يؤدي إلى إبطاء تنفيذ البرنامج.
توبل ، من ناحية أخرى ، هو هيكل بيانات غير قابل للتغيير. هذا يعني أنه لا يمكن تغيير عناصرها بعد إنشائها. على الرغم من أن هذا القيد قد يكون غير مريح في بعض المواقف ، إلا أنه يؤدي أيضا إلى تحسين الأداء. نظرا لأن المجموعة لا تحتاج إلى تعديل ، فإن إنشائها والوصول إلى عناصرها يكون أكثر كفاءة.
دعونا نلقي نظرة على بعض الأمثلة لنرى كيف يعمل هذا في الممارسة العملية. النظر في التعليمات البرمجية التالية:
> > > استيراد الوقت > > > قائمة_الوقت = الوقت.تيميت ('س = [1, 2, 3, 4, 5]')
> > > الوقت = الوقت.تيميت ('س = (1, 2, 3, 4, 5)')
> > > قائمة_الوقت
0.178374444
> > > الوقت
0.030152568
لقياس وقت تنفيذ القائمة وإنشاء المجموعة. كما ترى ، يستغرق إنشاء مجموعة وقتا أقل بكثير من إنشاء قائمة.
وبالإضافة إلى ذلك ، والوصول إلى عناصر توبل هو أيضا أسرع مما كانت عليه في القائمة. على سبيل المثال:
> > > س = (1, 2, 3, 4, 5)
> > > ص = [1, 2, 3, 4, 5]
> > > وقت الوصول = الوقت.تيميت ('س [0]' ، الإعداد= 'من__ الرئيسية _ _ استيراد س')
> > > قائمة_الوصول_الوقت = الوقت.تيميت ('ذ [0]' ، الإعداد= 'من _ _ الرئيسية _ _ استيراد ذ')
> > > وقت الوصول
0.032415728
> > > قائمة_الوصول _الوقت
0.061317536
هنا نقيس وقت الوصول إلى العنصر الأول من المجموعة والقائمة. كما هو متوقع ، يكون الوصول إلى عنصر المجموعة أسرع من الوصول إلى عنصر القائمة.
ومع ذلك ، تجدر الإشارة إلى أن فرق الأداء بين القائمة والصفوف قد يكون ضئيلا في معظم الحالات. يجدر دائما النظر في سياق مهمتك واختيار بنية البيانات بناء على متطلباتها.
نتيجة لذلك ، إذا كنت بحاجة إلى بنية بيانات قابلة للتغيير مع خاصية إدراج العناصر وحذفها في أي مكان ، فمن الأفضل استخدام قائمة. إذا كانت بياناتك ثابتة ولا تتطلب تغييرات ، فيمكن أن تكون المجموعة أسرع في التنفيذ.
الاختلافات بين القائمة والصفوف
قائمة و توبل هما النوعان الرئيسيان من التسلسلات في لغة برمجة بايثون. كلاهما يستخدم لتخزين مجموعة من القيم ، ولكن لديها العديد من الاختلافات.
| الممتلكات | قائمة | توبل |
|---|---|---|
| التباين | يمكنك تغيير (قابلة للتغيير) | لا يمكن تغيير بناء الجملة (غير قابل للتغيير) |
| القائمة مرفقة بين قوسين معقوفين [ ] | المجموعة محاطة بين قوسين ( ) | |
| السرعة | القوائم أبطأ في تنفيذ العمليات | الصفوف أسرع في أداء العمليات |
| استخدام الذاكرة | تستخدم القوائم ذاكرة أكبر لتخزين العناصر | الصفوف تستخدم ذاكرة أقل |
| التطبيق | يتم استخدامه عندما تحتاج إلى تغيير المحتوى | يتم استخدامه عندما يكون من الضروري ضمان الثبات |
أحد الاختلافات الرئيسية بين القوائم والصفوف هو قابلية التغيير. يمكن تغيير القوائم بعد الإنشاء ، مما يعني أنه يمكننا إضافة أو حذف أو استبدال العناصر في القائمة. في الوقت نفسه ، لا يمكن تغيير الصفوف بعد الإنشاء ، مما يضمن بقاء البيانات دون تغيير.
بناء الجملة من القوائم والصفوف هو أيضا مختلفة. القائمة محاطة بأقواس مربعة ، على سبيل المثال: [1, 2, 3]. يتم وضع المجموعة بين قوسين ، على سبيل المثال: (1 ، 2 ، 3).
سرعة العمليات هي عامل آخر يميز القوائم والصفوف. عادة ما تعمل الصفوف بشكل أسرع قليلا عند إجراء العمليات وتتطلب موارد ذاكرة أقل لتخزين العناصر.
يعتمد الاختيار بين استخدام القوائم والصفوف على الموقف المحدد. إذا كنت بحاجة إلى تغيير المحتويات ، فمن الأفضل استخدام قائمة. إذا كان ثبات البيانات مهما بالنسبة لك،فسيكون من الأفضل استخدام مجموعة.
مزايا استخدام القائمة
المرونة
القائمة في بايثون هي بنية بيانات ديناميكية ، مما يعني أنه يمكن تعديلها بعد الإنشاء. يتيح لك ذلك إضافة عناصر القائمة وحذفها وتغييرها أثناء تشغيل البرنامج. هذه المرونة تجعل القائمة مريحة للغاية للعمل مع مجموعات البيانات التي قد تتغير بمرور الوقت.
سهولة الاستخدام
تسمح لك لإضافة وإزالة العناصر من أي مكان في القائمة. تدعم القائمة أيضا عمليات الفهرسة والتقطيع ، مما يسهل الوصول إلى عناصر القائمة.
أداة قوية
القائمة هي واحدة من أنواع البيانات الرئيسية في بيثون ويستخدم على نطاق واسع في مجموعة متنوعة من المهام. نظرا لمرونتها وسهولة استخدامها ، تصبح القائمة أداة قوية للعمل مع البيانات. يمكن استخدامه لتخزين أي نوع من الكائنات ، بما في ذلك الأرقام والسلاسل والقوائم الأخرى وحتى الكائنات المخصصة.
التباين
واحدة من المزايا الرئيسية للقائمة هي قابليتها للتغيير. هذا يعني أنه يمكن تغيير عناصر القائمة بعد الإنشاء. على سبيل المثال ، يمكنك تغيير قيمة عنصر قائمة أو تغيير ترتيب العناصر. هذا يجعل القائمة أداة لا غنى عنها عند العمل مع البيانات التي تحتاج إلى تحديث وتعديل.
سهولة قراءة وكتابة البيانات
، يمكنك بسهولة إضافة عناصر جديدة إلى القائمة. يتم تنفيذ الوصول إلى عناصر القائمة من خلال الفهارس أو عن طريق التكرار من خلال القائمة. هذه واجهة بسيطة وبديهية يجعل قائمة واحدة من أنواع البيانات الأكثر ملاءمة للعمل مع قوائم القيم أو الكائنات.
مزايا استخدام توبل
1. الثبات
المجموعة هي بنية بيانات غير قابلة للتغيير. هذا يعني أنه بمجرد إنشاء مجموعة، لا يمكنك تغيير عناصرها. يمكن أن تكون هذه الخاصية مفيدة عندما يكون من الضروري تقديم معلومات لا ينبغي تغييرها ، على سبيل المثال ، إحداثيات نقطة على مستوى.
2. وصول أسرع إلى العناصر
نظرا لأن المجموعة غير قابلة للتغيير ، يمكن تخزين عناصرها في ذاكرة محسنة. هذا يمكن أن يؤدي إلى وصول أسرع إلى عناصر المجموعة مقارنة بالقائمة.
3. الحماية ضد التغييرات
نظرا لثبات المجموعة ، فإنه يسمح لك بحفظ حالة البيانات في وقت معين. يكون هذا مفيدا عندما تحتاج إلى منع البيانات من التغيير بأي طريقة عشوائية.
4. استخدام القاموس كمفاتيح
توبل يمكن استخدامها كمفاتيح القاموس ، على عكس القائمة ، لأنه هو نوع البيانات المجزأة.
5. إنشاء سريع
عادة ما يستغرق إنشاء مجموعة وقتا أقل مقارنة بإنشاء قائمة. يمكن أن يكون هذا مفيدا عند العمل مع كميات كبيرة من البيانات أو في المواقف التي تتطلب إنشاء هياكل بيانات متعددة.
| توبل | قائمة |
|---|---|
| المجموعة غير قابلة للتغيير | القائمة قابلة للتغيير |
| عادة ما يكون التفاعل مع العناصر أسرع | قد يكون التفاعل مع العناصر أبطأ |
| يمنع تغييرات البيانات العرضية | يسمح بتغييرات البيانات العرضية |
| يمكن استخدامها كمفاتيح القاموس | لا يمكن استخدامها كمفاتيح القاموس |
| يتم إنشاؤه بشكل أسرع | يتم إنشاؤه ببطء أكثر |
أمثلة على استخدام القائمة
في بايثون ، القائمة عبارة عن مجموعة مرتبة من العناصر التي تمثل نوع بيانات قابل للتغيير. يمكن أن تحتوي القائمة على كائنات من أنواع مختلفة ويمكن إنشاؤها باستخدام أقواس مربعة [].
دعونا نلقي نظرة على بعض الأمثلة على استخدام القائمة:
- اسم القائمة = []
- أرقام = [1, 2, 3, 4, 5]
numbers = [1, 2, 3, 4, 5]
numbers[0] = 10
print(numbers) # Выводит [10, 2, 3, 4, 5]
Добавление элементов в список:
fruits = ['apple', 'banana', 'orange']
fruits.append('grape')
طباعة (الفواكه) # المخرجات ['التفاح' ، 'الموز' ، 'البرتقال' ، 'العنب']
أمثلة استخدام المجموعة
1. تخزين البيانات
يمكن استخدام الصفوف لتخزين البيانات. على سبيل المثال ، إذا كانت لديك بيانات عن حسابات العملاء المصرفية التي تتكون من الاسم الأول واسم العائلة والرصيد ، فيمكنك إنشاء مجموعة لكل عميل:
العميل 1 = ('إيفان' ، 'إيفانوف' ، 1000.00)
العميل 2 = ('بيتر' ، 'بتروف' ، 500.00)
العميل 3 = ('آنا' ، 'سيدوروفا' ، 2000.00)
يمكنك استخدام الصفوف لتخزين البيانات في جدول أو قاعدة بيانات حيث يمثل كل صف سجلا منفصلا.
2. تمرير الحجج إلى الوظيفة
يمكن استخدام الصفوف لتمرير وسيطات متعددة إلى دالة. على سبيل المثال ، إذا كانت لديك وظيفة تقبل الاسم الأول والأخير للشخص ، فيمكنك تمريرها على أنها مجموعة:
مواطنه تحية (شخص):
طباعة ('مرحبا ،' + شخص [0] + '' + شخص [1])
المستخدم = ('إيفان' ، 'إيفانوف')
تحية (المستخدم)
نتيجة البرنامج:
مرحبا ايفان ايفانوف
3. إرجاع قيم متعددة من الدالة
يمكن للوظائف في بايثون إرجاع قيمة واحدة فقط ، ولكن هذه القيمة يمكن أن تكون مجموعة. على سبيل المثال ، يمكن للدالة إرجاع نتائج عدة حسابات أو عدة متغيرات:
مواطنه حساب_إحصائيات (أرقام):
الحد الأدنى = دقيقة (أرقام)
الحد الأقصى = الحد الأقصى (أرقام)
متوسط = مجموع (أرقام) / لين (أرقام)
عودة الحد الأدنى ، الحد الأقصى ، المتوسط
البيانات = [1, 2, 3, 4, 5]
النتيجة = احصائيات حسابية (بيانات)
طباعة ('الحد الأدنى:' ، النتيجة [0])
طباعة ('الحد الأقصى:' ، النتيجة[1])
طباعة ('متوسط:' ، النتيجة [2])
نتيجة تنفيذ البرنامج:
الحد الأدنى: 1
الحد الأقصى: 5
متوسط: 3.0
4. حماية البيانات
الصفوف غير قابلة للتغيير ، مما يعني أنه لا يمكن تغييرها بعد الخلق. يمكن أن يكون هذا مفيدا لحماية البيانات لمنع التعديل العرضي. على سبيل المثال ، يمكنك استخدام مجموعة لتخزين الثوابت أو القيم التي يجب ألا تتغير في البرنامج: