اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

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

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

و يمكنك الإطلاع على طريقة إستخدامها أكثر من خلال هذا المقال:
الدالة frozenset()‎ في بايثون

  • 0
نشر

tuple و frozenset شيئان مختلفان. tuple تحفظ العناصر بترتيبها الذي أنشأته بها، والعناصر فيها قابلة للتكرار، فيمكن أن يكون لدينا tuple بهذا الشكل:

t = (1, 5, 6, 5, 9, 1, 6)

العناصر هذه سوف تبقى في أماكنها التي تمّ تعريفها بها، والتكرار بين العناصر سوف يبقى أيضا من دون تغيير:

len(t)  # 7
t[1]  # 5
t[3]  # 5
t.count(5)  # 2

بينما frozenset (وأيضا set العادية) تحفظ عناصرها من دون أي ترتيب ولا تسمح بالتكرار:

s = frozenset((1, 5, 6, 5, 9, 1, 6))
len(s)  # 4

لا يمكن الوصول إلى عناصر frozenset بالترتيب، لأنّه لا يوجد ترتيب فيها كما قلنا:

s[0]  # TypeError: 'frozenset' object is not subscriptable

لذلك، فالشيء المشترك الوحيد بين tuple و frozenset هو عدم إمكانية التعديل عليهما بعد إنشائهما، أمّا بقية خصائصهما فهي مختلفة.

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

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...