تقنية

طرح عدادات بايثون: أين ذهبت القيم السالبة؟

الفروق مع إشاراتها والموجب فقط
العامل يبقي الموجب فقط. [1]

Counter.subtract() و- مختلفان. [1]

الخلاصة السريعة

احتفظ بالفروق السالبة والصفرية باستخدام subtract()؛ الطرح بعلامة - يبقي الموجب فقط. [1]

  • subtract() يغير العداد المستقبِل؛ الصفر لا يحذف المفتاح. [1]
  • c-d يعيد عدادًا جديدًا، دون تغيير المدخلين. [1]
  • مثالنا يعطي A:−1 وB:1 وC:−1؛ الطرح بعلامة - يبقي B:1. [1]
  • +balance يعيد عدادًا بالموجب فقط، ولا يحفظ السالب والصفر. [1]
  • انسخ لحفظ الأصل؛ نختبر أعدادًا صحيحة دون قياس سرعة. [1] [2]

احسب الفرق لكل مفتاح

c={A:2,B:1} وd={A:3,C:1}؛ الغائب صفر. الفروق: A:2−3=−1، B:1−0=1، C:0−1=−1. [1]

from collections import Counter
c = Counter(A=2, B=1)
d = Counter(A=3, C=1)
positive = c - d
balance = c.copy()
balance.subtract(d)

[1] [2]

نسخنا لحفظ c؛ التغيير في balance فقط. [1] [2]

افحص ما بقي

positive فيه B:1؛ balance الفروق الثلاثة؛ +balance عداد جديد فيه B:1. [1]

— يعني مفتاحًا غائبًا، وليس صفرًا محفوظًا. [1]

الصفر ليس حذفًا

عند طرح Counter(A=1) من مثله، subtract() يبقي A:0؛ - يعطي عدادًا فارغًا. [1]

مفتاح صفري أم عداد فارغ
الصفر ليس غيابًا. [1]

حد المثال

أعداد صحيحة افتراضية؛ دون قياس أداء. [1]

المراجع

  1. Python: عمليات Counter
  2. Python: نسخ القاموس
  3. موضوع: حساب المنوال — مفردات
  4. موضوع: تعريف المنوال — مفردات

أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.