المبرمج العربي نشر 21 يناير 2016 أرسل تقرير نشر 21 يناير 2016 أملك القائمة التالية:['apple','red','apple','red','red','pear']وأريد حساب تكرارات كل عنصر فيها وتكون قاموس به كل عنصر وعدد تكراراته كالتالي:{'apple': 2, 'red': 3, 'pear': 1}فما أسهل طريقة لفعل ذلك في لغة بايثون؟ اقتباس
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 اقتباس
السؤال
المبرمج العربي
أملك القائمة التالية:
وأريد حساب تكرارات كل عنصر فيها وتكون قاموس به كل عنصر وعدد تكراراته كالتالي:
فما أسهل طريقة لفعل ذلك في لغة بايثون؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.