Mohammed Alemad نشر 4 أبريل أرسل تقرير نشر 4 أبريل why would we use frozen_sets while we could use tuples 1 اقتباس
0 Chihab Hedidi نشر 4 أبريل أرسل تقرير نشر 4 أبريل الإستخدامات دائما تعود على حسب إحتياجات المشروع و طريقة تفكير المبرمج، frozen_sets لا يمكن تغييرها بعد إنشائها، بينما يمكن تغيير الأزواج أو tuples. هذا يجعل المجموعات المجمدة أكثر أمانا في بعض الحالات عندما نحتاج إلى بيانات ثابتة. في العادة نستخدم frozen_sets في الحالات التي نحتاج فيها إلى مجموعة من العناصر غير المتكررة والغير متغيرة، مثل مفاتيح القاموس أو القيم المتميزة (distinct values)، في حين أن الأزواج تستخدم عادة للعناصر المرتبطة ببعضها. و يمكنك الإطلاع على طريقة إستخدامها أكثر من خلال هذا المقال: الدالة frozenset() في بايثون اقتباس
0 حمزة عباد نشر 5 أبريل أرسل تقرير نشر 5 أبريل 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 ستكون الهيكل المناسب. اقتباس
السؤال
Mohammed Alemad
why would we use frozen_sets while we could use tuples
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.