🐍
পাইথন প্রোগ্রামিং ল্যাঙ্গুয়েজ
  • পাইথন প্রোগ্রামিং ল্যাংগুয়েজ
  • সূচি
  • ব্রিফ হিস্টোরি অফ পাইথন
  • অধ্যায়ঃ১ পাইথন বেসিক
    • ভ্যারিয়েবল
    • কন্সট্যান্টস
    • আইডেন্টিফাইয়ারস
    • নেমিং কনভেনশন
    • ইন্ডেনটেশন
    • কমেন্টস
    • ডক স্ট্রিংস
    • রিজার্ভড কি-ওয়ার্ডস
    • অপারেটরস
      • এরিথমেটিক অপারেটরস
      • রিলেশনাল অপারেটরস
      • লজিক্যাল অপারেটরস
      • বিট-ওয়াইজ অপারেটরস
      • অ্যাসাইনমেন্ট অপারেটরস
      • আইডেন্টিটি অপারেটরস
      • মেম্বারশিপ অপারেটরস
    • ইনপুট-আউটপুট
  • অধ্যায়ঃ ২ ডেটা টাইপ্স
    • জেনারেল টাইপ্স
      • ইন্টিগ্রাল
        • ইন্টিজার
        • বুলিয়ান
      • ফ্লোটিং
        • ফ্লোটিং পয়েন্ট
        • কমপ্লেক্স
        • ডেসিমাল
      • স্ট্রিংস
    • কালেকশন ডেটা টাইপ্স
      • সিকোয়েন্স টাইপ
        • লিস্ট
        • ট্যুপল
      • সেট টাইপ
        • সেট
        • ফ্রোজেন সেট
      • ম্যাপিং
        • ডিকশনারি
        • কাউন্টার
  • অধ্যায় ৩ঃ কন্ট্রোল স্ট্রাকচারস
    • কন্ডিশনাল স্টেটমেন্ট
    • লুপ
      • ফর লুপ
      • হোয়াইল লুপ
      • রেঞ্জ range()
      • enumerate()
      • zip()
  • অধ্যায় ৪ঃ পাইথন কম্প্রিহেনশন্স
    • লিস্ট কম্প্রিহেনশন্স
    • ডিকশনারি কম্প্রিহেনশন্স
    • সেট কম্প্রিহেনশন্স
  • অধ্যায় ৫ঃ ফাংশনাল প্রোগ্রামিং
    • পাইথন ফাংশন্স
    • আর্গুমেন্টস অব ফাংশন্স
      • ডিফল্ট আর্গুমেন্টস
      • রিকোয়ার্ড আর্গুমেন্টস
      • কি-ওয়ার্ড আর্গুমেন্টস
      • ভ্যারিবেল লেনথ আর্গুমেন্টস
    • রিকার্শন ইন পাইথন
Powered by GitBook
On this page

Was this helpful?

  1. অধ্যায়ঃ ২ ডেটা টাইপ্স
  2. কালেকশন ডেটা টাইপ্স
  3. ম্যাপিং

কাউন্টার

অন্যান্য কালেকশন ডেটা টাইপের (list, tuple, dict) মত পাইথনের collection মডিউলের একটি ডেটা টাইপ বা ডেটা স্ট্রাকচার হচ্ছে counter. counter মূলত count ফাংশনের কাজ করে। তবে এটি একটি পুরো ডেটা সেটের বিভিন্ন ডেটার আলাদা আলাদা সংখ্যা গণনা করে।এটি dict ক্লাসের একটি সাবক্লাস। counter ডেটা টাইপে লিস্ট,টুপল,স্ট্রিং রাখা যায়। এটি একটি ডিকশিনারি রিটার্ণ করে। যার 'কি' হচ্ছে লিস্টের প্রতিটি ইউনিক ভ্যালু এবং 'ভ্যালু' হল সে এলিমেন্ট লিস্টে কত বার আছে তার মান।

>>>from collections import Counter
>>>s = Counter('sfsjsbfajs')
>>>s
Counter({'s': 4, 'f': 2, 'j': 2, 'b': 1, 'a': 1})
>>>
>>>c = Counter(['a','b','a','a',1,4,1,1,'b'])
>>>c
Counter({'a': 3, 1: 3, 'b': 2, 4: 1})
>>> t = Counter((1,3,1))
>>>t
Counter({1: 2, 3: 1})
>>>type(t)
<class 'collections.Counter'>
>>>issubclass(Counter,dict)
True

আমরা কাউন্টার ডেটা টাইপে একটি মাত্র আর্গুমেন্ট পাস করতে পারব। অর্থাৎ একটি লিস্ট বা একটি স্ট্রিং বা একটি ট্যুপল। এক সাথে একাধিক আর্গুমেন্ট পাঠানো যাবে না তাহলে এক্সেপশন দেখাবে।

>>> from collections import Counter
>>> c = Counter(['a','a','b'],[1,2,3,'a'])
TypeError: expected at most 1 arguments, got 2

এছাড়া ও পাইথন Counter() এ কি- ওয়ার্ড আর্গুমেন্ট পাস করা যায়৷

আপডেটিং

অন্যান্য কালেকশন ডেটা টাইপের মত Counter ও আপডেট করা যায়।একটি এম্পটি কাউন্টার বা এক্সিস্টিং কোন কাউন্টারেও নতুন এলিমেন্ট যোগ করা যায়।

>>>c = Counter() 
# defining an empty Counter
>>>c.update("a") 
# adding values to "c"
>>>c
Counter({a:1})
>>>c.update("aab")
>>>c
Counter({a:3,b:1})

ডিলিটিং

কাউন্টার ডেটা টাইপ থেকে কোন ডেটা ডিলিট করার জন্য subtract() ফাংশন ব্যবহার করা হয়৷

>>>c.subtract('a')
>>>c
Counter({'a':2, 'b':1})
>>>c.subtract('ab')
>>>c
Counter({'a':1, 'b':0})

এক্সেসিং

Counter এর গঠন পুরোপুরি ডিকশেনারির মতই৷ এর এলিমেন্ট গুলো এক্সেস ও করা যায় ডিকশনারির মত 'কি' ব্যবহার করে। তবে ডিকশিনারির ক্ষেত্রে কোন কি যদি অনুপস্থিত থাকত আমরা KeyError পেতাম, এক্ষেত্রে কাউন্টার আমাদের "শূন্য" পাঠাবে।

>>>c['a']
3
>>>c['d']
0

আমরা যদি কোন 'কি' এর ভ্যালু বাড়াতে চাই মানে "a" এর মান "3" থেকে বাড়াতে বা কমাতে চাই তাহলে সে কি এর ভ্যালু রি-অ্যাসাইন করে দিতে হবে।

>>>c['a'] = 2
>>>c
Counter ({'a':2, 'b':1})

কাউন্টারের আরেকটি ফাংশন হল elements(). এ ফাংশন টি কাউন্টারের ভেতর থাকা প্রতিটি এলিমেন্ট একটি ইটারেটর অবজেক্ট আকারে আউটপুট দেয়৷ তবে এর হিউম্যান রিডেবল ফরম্যাট পেতে আমাদের এটিকে লিস্টে কনভার্ট কর নিতে হয়।

>>>c.elements()
<itertools.chain object at 0x7c07339860>

>>>list(c.elements())
Counter ('a', 'a', 'b')

এখানে লক্ষনীয় যে, কাউন্টারের ভেতর যে এলিমেন্ট(কি) এর মান(ভ্যালু) যত ছিল সেই এলিমেন্ট ঠিক ততবার আলাদা আলাদা ভাবে যুক্ত হয়েছে।

কাউন্টার একটি কন্টেইনার যা কোন ডেটাসেটে কোন ডেটা কত সংখ্যক বার রয়েছে তার ভ্যালু ধারন করে।

PreviousডিকশনারিNextঅধ্যায় ৩ঃ কন্ট্রোল স্ট্রাকচারস

Last updated 4 years ago

Was this helpful?