المبرمج العربي نشر 21 يناير 2016 أرسل تقرير مشاركة نشر 21 يناير 2016 أملك القائمة التالية:['apple','red','apple','red','red','pear']وأريد حساب تكرارات كل عنصر فيها وتكون قاموس به كل عنصر وعدد تكراراته كالتالي:{'apple': 2, 'red': 3, 'pear': 1}فما أسهل طريقة لفعل ذلك في لغة بايثون؟ اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 هشام رزق الله نشر 21 يناير 2016 أرسل تقرير مشاركة نشر 21 يناير 2016 يوجد عدة طرق في لغة بايثون لفعل ذلك، فإذا كنت تستخدم الإصدار 2.7 أو 3.1 من بايثون فيمكنك استعمال دالة Counter من وحدة collections كما في المثال التالي:>>> from collections import Counter >>> Counter(['apple','red','apple','red','red','pear']) Counter({'red': 3, 'apple': 2, 'pear': 1}) أو يمكنك استخدام هذه الطريقة (أطول قليلا من سابقتها) وذلك عن طريق استعمال دالة defaultdict من وحدة collections مع حلقة التكرار for كما في المثال التالي:>>> L = ['apple','red','apple','red','red','pear'] >>> from collections import defaultdict >>> d = defaultdict(int) >>> for i in L: ... d[i] += 1 >>> d defaultdict(<type 'int'>, {'pear': 1, 'apple': 2, 'red': 3}) وهذه طريقة أخرى لفعل ذلك:counts = dict() for i in items: counts[i] = counts.get(i, 0) + 1 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
السؤال
المبرمج العربي
أملك القائمة التالية:
وأريد حساب تكرارات كل عنصر فيها وتكون قاموس به كل عنصر وعدد تكراراته كالتالي:
فما أسهل طريقة لفعل ذلك في لغة بايثون؟
رابط هذا التعليق
شارك على الشبكات الإجتماعية
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.