وحدة مكتبة بيثون القياسية الأكثر فائدة والتي ينسى الجميع باستمرار


بيثون لديه الكثير من وحدات كبيرة من خارج منطقة الجزاء. واحدة من أكثر فائدة هو مجموعات . أنه يحتوي على "أنواع متخصصة لإنشاء الحاويات" ، والتي هي بدائل للقواعد والقوائم والمجموعات والتماثيل العالمية . فيما يلي ، نلقي نظرة على ثلاثة فصول موجودة في الوحدة التعليمية والتي صادفها معظم الثعابين ولكنهم ينسون باستمرار تطبيقها.


NamedTuple


من الصعب المبالغة في تقدير فائدة tuples المسماة لعلماء البيانات. دعنا نفترض أنك بصدد إنشاء نموذج جديد ، بإضافة ميزات جديدة باستمرار إلى القائمة ، التي تخطط لتغذية إطار تعلم الآلة بها. مع زيادة عدد الخصائص ، ستبدأ عاجلاً أم آجلاً في الشعور بالارتباك وتنسى الفهرس المسؤول عن ماذا. والأسوأ من ذلك ، إذا اضطر الزملاء إلى العمل مع الكود الخاص بك: فقد لا يفهمون أي شيء على الإطلاق.


يمكن فقط بضعة أسطر وضع البرنامج النصي في الترتيب . انظر:


from collections import namedtuple Features = namedtuple('Features', ['age', 'gender', 'name']) row = Features(age=22, gender='male', name='Alex') print(row.age) 

الآن ، بدلاً من تحديد الفهارس ، يمكنك استخدام الأسماء للوصول إلى عناصر السطر ، مما يجعل الكود أكثر نظافة وبساطة.


عداد


عداد ، كما يوحي الاسم ، التهم الموجهة إليه. يبدو الأمر سهلاً ، لكن يحتاج علماء البيانات إلى الاستمرار في العد باستمرار ، وبالتالي فإن الأداة مفيدة للغاية في الممارسة العملية.


هناك عدة طرق لإنشاء عداد ، ولكن أبسطها هي تهيئة ذلك بقائمة من القيم:


 from collections import Counter ages = [22, 22, 25, 25, 30, 24, 26, 24, 35, 45, 52, 22, 22, 22, 25, 16, 11, 15, 40, 30] value_counts = Counter(ages) print(value_counts.most_common()) 

تشغيل هذا الرمز (والذي ، بالمناسبة ، يمكن أن يتم عن طريق تمرير المقتطف المقابل إلى pythonanywhere.com/gists/ ) ، سترى:


 [(22, 5), (25, 3), (24, 2), (30, 2), (35, 1), (40, 1), (11, 1), (45, 1), (15, 1), (16, 1), (52, 1), (26, 1)] 

قائمة tuples بترتيب تنازلي عن انتشار القيم ، حيث يكون العنصر الأول من tuple هو القيمة والثاني هو عدد مرات ظهوره في القائمة الأصلية. تبين أن سطرين من الكود يكفيان لمعرفة أن "22" هو الأكثر شيوعًا ، ويحدث ذلك 5 مرات.


DefaultDict


أحد أدواتي المفضلة في المكتبة القياسية. DefaultDict - قاموس ذو قيمة افتراضية لأي مفتاح جديد. مثال:


 from collections import defaultdict my_default_dict = defaultdict(int) for letter in 'the red fox ran as fast as it could': my_default_dict[letter] += 1 print(my_default_dict) 

العوائد:


 defaultdict(<type 'int'>, {'a': 4, ' ': 8, 'c': 1, 'e': 2, 'd': 2, 'f': 2, 'i': 1, 'h': 1, 'l': 1, 'o': 2, 'n': 1, 's': 3, 'r': 2, 'u': 1, 't': 3, 'x': 1}) 

عند العمل في قاموس عادي ، يجب عليك التحقق باستمرار من وجود مفتاح وتهيئة المفاتيح غير الموجودة يدويًا. في المثال أعلاه ، لكل مفتاح غير موجود ، هناك بالفعل قيمة افتراضية هي 0. هذا يسمح لك بكتابة منظف الكود وأكثر وضوحًا .


بالإضافة إلى الأعداد الصحيحة ، غالبًا ما يستخدم DefaultDict بالاقتران مع قائمة فارغة للبدء في إضافة عناصر بدون أداة النمذجة.


اذهب إلى الكود النظيف!


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

Source: https://habr.com/ru/post/ar478934/


All Articles