نوع البيانات frozenset

نوع البيانات frozenset

نوع البيانات frozenset

الدالة frozenset هي نسخة مجمدة من set بمعني انه بمجرد انشائها لا يمكن تعديل العناصر بداخلها، او اضافة عناصر جديدة.

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

المجموعة المجمدة frozenset

تمتلك المجموعة frozenset نفس صفات المجموعة set بحيث انها لا تمتلك فهرس او مفتاح (index, key) ، وغير مرتبة.

صيغة الدالة frozenset () هي:

frozenset([iterable])

بين اقواس الدالة frozenset يمكن ادخال اي نوع من انواع البيانات القابل للتكرار وتحويلة الي مجموعة مجمدة frozenset ، ومن تلك الانواع ( النصوص - القاموس - القائمة - المجموعة ) .

مثال علي frozenset

arr = ['ahmed', 'mohamed', 'gamal']
x = frozenset(arr)
print(x)

في المثال السابق صرحنا عن متغير arr واضفنا له قائمة list ، وعلي السطر التالي استخدمنا frozenset لتحويل القائمة الي مجموعة مجمدة غير قابلة للتعديل.

يمكن ايضاً استبدال قيمة arr بقيمة اخري من انواع البيانات القابلة للتكرار مثل tuple, dictionary, string ، وسوف تحصل علي نتيجة مشابهة.

tup = ('ahmed', 'mohamed', 'gamal')
s = "ahmed"

x0 = frozenset(tup)
x1 = frozenset(s)

print(x0)
print(x1)

كما تلاحظ تم تحويل النص الي مجموعة مجمدة مكونة من حروف النص ، وتم تحويل المجموعة tuple الي مجموعة مجمدة ، وذلك يتم علي اي نوع بيانات قابل للتكرار وهي كل البيانات التي تمتلك طول length.

عند تحويل قاموس dict الي مجموعة مجمدة frozenset يتم اضافة مفاتيح القاموس فقط ، وهذا الاستخدام الشائع للمجموعة المجمدة frozenset.

مثال بايثون تحويل قاموس dict الي frozenset:

d = {"ahmed":"[email protected]",
    "mohamed":"[email protected]",
    "gamal":"[email protected]"}

f = frozenset(d)
print(f)

كما تلاحظ متغير f الان يحتوي علي مجموعة مجمدة تحتوي علي مفاتيح القاموس d فقط ، ومن هنا يمكن التعامل بتلك المفاتيح مع قواميس اخري.

x = {"ahmed":"[email protected]",
    "mohamed":"[email protected]",
    "gamal":"[email protected]"}

y = {"ahmed":4512112,
    "mohamed":62511212,
    "gamal":545225444}

f = frozenset(x)
for i in f:
    print("name: {} \n email: {} \n phone: {} \n {}".format(i, x[i], y[i], '*' * 20))

في المثال السابق صرحنا عن قاموس x و y ، وبنفس المفاتيح في كليهما ، مع قيم مختلفة . ثم صرحنا عن متغير f يحتوي علي مجموعة مجمدة من x.

علي السطر التالي له استخدمنا حلقة التكرار for للتكرار علي عناصر المجموعة المجمدة f ومع كل تكرار يتم جلب البيانات من القاموس x و y وطباعتها.

في المثال السابق استخدمنا المجموعة المجمدة frozenset مثل سلسلة مفاتيح لاستخراج البيانات من اكثر من قاموس او مصدر بيانات.

يمكن استخدام معظم دوال set في التعامل مع frozenset ما عدا دوال التعديل او الاضافة.

مثال علي اضافة عنصر الي frozenset:

x = frozenset(['ahmed', 'mohamed', 'gamal'])
x.add('error')
print(x)

عند تشغيل المثال السابق سوف تحصل علي خطا وهو ان المجموعة المجمدة لا تمتلك دالة add ، وهذا مع كل دوال التعديل الاخري.

تمرين بايثون علي المجموعة FROZENSET

بعد ان تعرفت علي المجموعة المجمدة frozenset دعنا نختبر ما تعلمته في دروسنا السابقة.

داخل المحرر التالي قم بالتصريح عن دالة جديدة باسم infreez مع براميتر x, y وداخل الدالة قم بارجاع قيمة منطقية True اذا كان x موجود في y غير ذلك ارجع قيمة منطقية False.

انواع البراميتر:

x - نصي

y - مجموعة مجمدة

ليس عليك سوي انشاء الدالة وفق ما هو مطلوب بالاعلي وتشغيل الكود وسوف يتم ارسال البيانات اليها والتحقق من المخرجات.

اذا لم تكن تعرف كيفية انشاء الدوال وارجاع البيانات راجع درس مقدمة عن الدوال في بايثون .

حلول الاعضاء
فتح الحلول مقابل 5
مقفل
output
terminal

Next

التعليقات

no comments found.
  • من خلال الضغط علي زر {;} في شريط الادوات يمكنك اضافة اكواد بايثون الي التعليق للتجربة اون لاين.
  • برجاء مراعاة قواعد الكتابة، والادب.