اختر لونك:
وَقُلِ اعْمَلُوا فَسَيَرَى اللَّهُ عَمَلَكُمْ وَرَسُولُهُ وَالْمُؤْمِنُونَ ۖ وَسَتُرَدُّونَ إِلَىٰ عَالِمِ الْغَيْبِ وَالشَّهَادَةِ فَيُنَبِّئُكُم بِمَا كُنتُمْ تَعْمَلُونَ [ التوبة : ( 105 )] كلمة الإدارة

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

يُمنع كتابة مواضيع السحر والشعوذة والروحانيات والابراج بكافة الأشكال والمخالف سيعاقب بحظر مؤقت وإذا تكرر سيكون حظر دائم تنبيه هام جداً



أضف رد جديد
 
LinkBack أدوات الموضوع انواع عرض الموضوع

قديم 01-03-2019, 10:27 AM   #1
تاريخ التسجيل: Feb 2019
الدولة: قلب ابي
العمر: 31
المشاركات: 1,006
التقييم: 10
تاريخ التسجيل: Feb 2019
الدولة: قلب ابي
العمر: 31
المشاركات: 1,006
التقييم: 10
افتراضي عناصر فريدة لحُذِف العنصر 1 لأنّه مُكرّر

تُوفّر لنا بايثون عدّة دوال للتّعامل مع الصّفوف وقد ذكرنا الدّالة len وكيفية استخدامها أعلاه. وقد حان الوقت للحديث عن بعض الدوال الأخرى المُساعدة في التّعامل مع الصّفوف:

دالة cmp للمُقارنة بين صفين، إذا كان الصّفان مُتساويان فالنّتيجة تكون 0 أمّا إذا كانا مُختلفين فالنّتيجة تطبع القيمة 1 أو القيمة -1 حسب الاختلاف:

>>> a = (1, 2, 3)
>>> b = (1, 2, 3)
>>> cmp(a, b)
0
>>> a = (1, 2, 3)
>>> b = (1, 2)
>>> cmp(a, b)
1
>>> a = (1, 2, 3)
>>> b = (1, 2)
>>> cmp(b, a)
-1
دالة max لإرجاع أكبر قيمة في صفّ:

>>> a = ('Hsoub Academy', 'Abdelhadi')
>>> max(a)
'Hsoub Academy'
>>> b = (1, 2, 3)
>>> max(b)
3
دالة min لإرجاع أصغر قيمة في صفّ:

>>> a = ('Hsoub Academy', 'Abdelhadi')
>>> min(a)
'Abdelhadi'
>>> b = (1,2, 3)
>>> min(b)
1
المجموعات Sets
المجموعات عبارة عن جمع غير منظّم لقيّم فريدة، بحيث لا تُكرّر قيمة أكثر من مرّة.

يُمكن إنشاء مجموعة فارغة وإضافة العناصر لها بالتّابع add، مع مُلاحظة أنّ التّابع add لا يقبل سوى عنصر واحد في كلّ مرة:

>>> x = set()
>>> x.add(1)
>>> x
set([1])
>>> x.add(2)
>>> x
set([1, 2])
>>> x.add("Hsoub Academy")
>>> x
set(['Hsoub Academy', 1, 2])
ولإضافة عدّة عناصر مرّة واحدة فعليك الاعتماد على التّابع update مع ملاحظة أنّ العناصر المُضافة يجب أن تكون داخل علامتي []:

>>> x = set()
>>> x.update([1, 3, 5, "Hsoub Academy"])
>>> x
set(['Hsoub Academy', 1, 3, 5])
ولحذف عنصر من مجموعة ما، فيُمكنك الاستعانة بالتّابع remove بحيث تُمرّر العنصر الذي ترغب بحذفه:

>>> x = set(['Hsoub Academy', 1, 3, 5])
>>> x.remove("Hsoub Academy")
>>> x
set([1, 3, 5])
أمّا إذا كنت ترغب بحذف جميع عناصر مجموعة ما، فالتّابع clear سيتكفّل بالأمر:

>>> x = set(['Hsoub Academy', 1, 3, 5])
>>> x
set(['Hsoub Academy', 1, 3, 5])
>>> x.clear()
>>> x
set([])
ويُمكنك نسخ مجموعة وإسناد المنسوخ إلى مجموعة أخرى بالتّابع copy، في المثال التّالي قمنا بنسخ المجموعة x وأسندنا المنسوخ إلى المجموعة y :

>>> x = set(['Hsoub Academy', 1, 3, 5])
>>> x
set(['Hsoub Academy', 1, 3, 5])
>>> y = x.copy()
>>> y
set(['Hsoub Academy', 1, 3, 5])
ويُمكن إنشاء مجموعة بقيّم مُتعدّدة، لاحظ في المثال التّالي أنّ النّاتج مجموعة تحتوي على عناصر فريدة (حُذِف العنصر 1 لأنّه مُكرّر):

>>> x = set([3, 1, 2, 1])
set([1, 2, 3])
وهناك طريقة جديدة لإنشاء المجموعات في بايثون 2.7:

>>> x = {3, 1, 2, 1}
set([1, 2, 3])
ويُمكن أن تُضيف قيمة إلى مجموعة، وذلك بالدّالة add.

>>> x = set([1, 2, 3])
>>> x.add(4)
>>> x
set([1, 2, 3, 4])
يُمكن الجمع بين مجموعتين بالمُعامل | بحيث تكون المجموعة الجديدة مُحتويّة على كلّ من عناصر المجموعتين، في المثال التّالي ننشئ أولا المجموعة x ثمّ ننشئ المجموعة y وبعد ذلك نقوم بتوحيد المجموعتين ونُسند النّتيجة إلى المجموعة x_y :

>>> x = set(['Hsoub Academy', 1, 3, 5])
>>> x
set(['Hsoub Academy', 1, 3, 5])
>>> y = set(["Dyouri", "Abdelhadi"])
>>> y
set(['Dyouri', 'Abdelhadi'])
>>> x_y = x | y
>>> x_y
set([1, 3, 5, 'Abdelhadi', 'Hsoub Academy', 'Dyouri'])
وكما في القوائم، يُمكنك أن تتحقّق من وجود قيمة من عدمه بالعامل in، وهذه العمليّة تكون أسرع في المجموعات من القوائم ولكنك لن تستطيع أن ترى فرقا كبيرا إلّا إذا كان عدد العناصر كبيرًا.

>>> x = set([1, 2, 3])
>>> 1 in x
True
>>> 5 in x
False
القواميس
القواميس تُشبه القوائم، الفرق أنّك تستطيع فهرسة العناصر داخل القواميس بأي نوع من القيم، ففي القوائم يُمكنك الوصول إلى القيم فقط عبر الأعداد الصّحيحة مثل []x أما في القواميس فتستطيع الوصول إلى قيّم عبر المفاتيح كالتّالي:

أولا ننشئ قاموسا، بحيث تملك كلّ قيمة مفتاحا معيّنا، كمثال المفتاح x يحمل القيمة 1:

>>> a = {'x': 1, 'y': 2, 'z': 3}
ويُمكنك الوصول إلى القيّم عبر المفاتيح (عوضا عن الأرقام في كما في القوائم):

>>> a['x']
1
>>> a['z']
3
يُمكنك كذلك إنشاء قاموس فارغ وإسناد المفاتيح والقيّم بعد ذلك:

>>> b = {}
>>> b['x'] = 2
>>> b[2] = 'foo'
>>> b[(1, 2)] = 3
>>> b
{(1, 2): 3, 'x': 2, 2: 'foo'}
يُمكن تعديل قيمة مفتاح بالطّريقة التّالية:

>>> a = {'x': 1, 'y': 2, 'z': 3}
>>> a
{'y': 2, 'x': 1, 'z': 3}
>>> a['y'] = 'Hsoub Academy'
>>> a
{'y': 'Hsoub Academy', 'x': 1, 'z': 3}
في المثال أعلاه غيّرنا قيمة المفتاح y من القيمة 2 إلى القيمة Hsoub Academy. ويُمكن إضافة مفاتيح وقيم جديدة كذلك:

>>> a = {'x': 1, 'y': 2, 'z': 3}
>>> a
{'y': 2, 'x': 1, 'z': 3}
>>> a['w'] = 'Hsoub Academy'
>>> a
{'y': 2, 'x': 1, 'z': 3, 'w': 'Hsoub Academy'}
يُمكنك حذف العناصر باستخدام del كالتّالي:

>>> a = {'x': 1, 'y': 2, 'z': 3}
>>> del a['x']
>>> a
{'y': 2, 'z': 3}
ويُمكنك حذف جميع مُكوّنات قاموس بالتّابع clear كالتّالي:

>>> a = {'x': 1, 'y': 2, 'z': 3}
>>> a
{'y': 2, 'x': 1, 'z': 3}
>>> a.clear()
>>> a
{}
ويُمكن كذلك حذف القاموس بأكمله:

>>> a = {'x': 1, 'y': 2, 'z': 3}
>>> a
{'y': 2, 'x': 1, 'z': 3}
>>> del a
>>> a
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined
في المثال أعلاه، حاولنا أن نصل إلى القاموس a بعد حذفه لذلك أرجع المُفسّرُ خطأ مفاده بأنّ a غير موجود.

الدّالة keys تُرجع جميع المفاتيح الموجودة في قاموس، وبالطّريقة نفسها يُمكن إرجاع جميع قيّم قاموس ما باستعمال values ، أمّا إن أردت إرجاع القيم والمفاتيح الموجودة في قاموس فيُمكنك استعمال items :

>>> a.keys()
['x', 'y', 'z']
>>> a.values()
[1, 2, 3]
>>> a.items()
[('x', 1), ('y', 2), ('z', 3)]
ويُمكن استعمال حلقة for للتّقدّم في القاموس واستخراج القيّم والمفاتيح:

>>> for key in a:
... print key
...
x
y
z
>>> for key, value in a.items():
... print key, value
...
x 1
y 2
z 3
يُمكن التحقق من تواجد مفتاح على قاموس باستخدام عامل in أو دالة has_key.

>>> 'x' in a
True
>>> 'p' in a
False
>>> a.has_key('x')
True
>>> a.has_key('p')
False
يُمكن كذلك الاعتماد على كلّ من get و setdefault بحيث الأولى تقوم بعرض قيمة مفتاح إذا كان موجودا وإذا لم يكن موجودا فترجع القيمة الافتراضيّة والتّي توضع كعامل Parameter ثان. انظر المثال لتفهم قصدي:

>>> d = {'x': 1, 'y': 2, 'z': 3}
>>> d.get('x', 5)
1
لقد أرجع السّطر السّابق القيمة (1) رغم أنّنا حدّدنا قيمة افتراضيّة (5) وذلك لأن المفتاح موجود ويحمل قيمة مُسبقا.

>>> d.get('p', 5)
5
في المثال أعلاه، أرجعت الدّالة get القيمة (5) وذلك لأنّ المفتاح p غير موجود أصلاً.

و setdefaul تقوم بوضع قيمة افتراضيّة لمفتاح إذا لم يكن موجودا.

>>> d.setdefault('x', 0)
1
>>> d
{'x': 1, 'y': 2, 'z': 3}
>>> d.setdefault('p', 0)
0
>>> d
{'y': 2, 'x': 1, 'z': 3, 'p': 0}
يُمكن استخدام القواميس لتمثيل السّلاسل النّصيّة عبر المفاتيح، حيث يُستبدَلُ المفتاح بقيمته:

>>> 'hello %(name)s' % {'name': 'python'}
'hello python'
>>> 'Chapter %(index)d: %(name)s' % {'index': 2, 'name': 'Data Structures'}
'Chapter 2: Data Structures'
ملاحظة حول المفاتيح
لا يمكن أن تُسند لمفتاح واحد أكثر من قيمة، إذا حاولت أن تُسند قيمتين لأكثر من مفتاح، فإنّ آخر قيمة تكون قيمة المفتاح في النّهاية:

>>> a = {'FirstName': 'Abd', 'LastName':'Dyouri', 'Job':'Writer', 'FirstName':'Abdelhadi'}
>>> a
{'LastName': 'Dyouri', 'Job': 'Writer', 'FirstName': 'Abdelhadi'}
>>> a['FirstName']
'Abdelhadi'
يُمكن الجمع بين قاموسين في قاموس واحد بالتّابع update، مع تمرير القاموس الثّاني، في المثال التّالي، أنشأنا قاموسا a ثمّ أنشأنا القاموس b، بعد ذلك حدّثنا القاموس a واضعين فيه مُكونات القاموس b فأصبح في الأخير يحمل جميع مكونات القاموسين :

>>> a = {'FirstName': 'Abd', 'LastName':'Dyouri', 'Job':'Writer', 'FirstName':'Abdelhadi'}
>>> a
{'LastName': 'Dyouri', 'Job': 'Writer', 'FirstName': 'Abdelhadi'}
>>> b = {'Website':'Hsoub Academy', 'Language':'Arabic'}
>>> b
{'Website': 'Hsoub Academy', 'Language': 'Arabic'}
>>> a.update(b)
>>> a
{'Website': 'Hsoub Academy', 'LastName': 'Dyouri', 'Job': 'Writer', 'Language': 'Arabic', 'FirstName': 'Abdelhadi'}
تطبيق حول القواميس
لننشئ تطبيقا بسيطا لتحويل الأرقام إلى كلمات في لغة بايثون، بحيث يكون لكلّ رقم كلمة تُقابله، افتح ملفّا واحفظه باسم dict.py واكتب فيه الشيفرات التّالية، اقرأ التّعليقات لتفهم الشّيفرة:

# -*- coding: utf-8 -*-

# طباعة اسم التّطبيق
print 'Dictionary Version 1.0.0'

# تعريف القاموس وتعيين القيم له
dict = { 1:'One', 2:'Two', 3:'Three', 4:'Four', 5:'Five' }

# الدّوران حول قيم ومفاتيح القاموس وطباعتها
for key in dict:
print key , 'in English is :' , dict[key]
مُخرجات التطبيق (بعد حفظ الملفّ وتنفيذه) ستكون كالتّالي:

Dictionary Version 1.0.0
1 in English is : One
2 in English is : Two
3 in English is : Three
4 in English is : Four
5 in English is : Five
يُمكنك أن تعدّل في الشّيفرة كما تشاء، ويُمكنك إضافة المزيد من القيم، الأمر يعود لك.

تمارين
تمرين 1
اجمع قيم الصّفين التّاليين وضعها في صفّ باسم c:

a = ('One','Two','Three')
b = ('Hsoub Academy', 'Abdelhadi')
تمرين 2
أحذف القيمة HTML من المجموعة x في الشّيفرة التّاليّة:

x = set(['Ruby', 'Python', 'HTML', 'Perl'])
تمرين 3
قم بتطبيق تعلّماتك لتنشئ برنامجا يعرض كلّ دولة عربية واختصارها، مثلا دولة المغرب اختصارها MA ومصر اختصارها EGY. بحيث تكون نتيجة البرنامج شيئا يبدو كالتّالي:

Morocco: MA Egypt: EGY

مهرة النجدية غير متواجد حالياً   اقتباس
أضف رد جديد

الكلمات الدلالية (Tags)
منتديات رحيل, رحيل, شبكة رحيل, r7il, r7il.com


الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1)
 

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة


المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
الدليل السريع إلى لغة التنسيق css القيصر قسم تطوير المواقع ومحركات البحث والسيو Seo والووردبريس WordPress 1 28-07-2019 07:50 PM
تحديد مواقع العناصر في CSS باستخدام fixed و sticky القيصر قسم تطوير المواقع ومحركات البحث والسيو Seo والووردبريس WordPress 1 28-07-2019 07:47 PM
التّابع scope.$eval مهرة النجدية قسم تطوير المواقع ومحركات البحث والسيو Seo والووردبريس WordPress 0 01-03-2019 10:45 AM


الساعة الآن 11:40 PM

 


Content Relevant URLs by vBSEO ©2010, Crawlability, Inc.