Python | Počítadlo objektov | prvky()
Počítadlo trieda je špeciálnym typom množiny údajov o objekte poskytovanej s zbierky modul v Pythone3. Modul Collections poskytuje používateľovi špecializované dátové typy kontajnerov, čím poskytuje alternatívu k všeobecným vstavaným modulom Pythonu, ako sú slovníky, zoznamy a n-tice.
Počítadlo je podtrieda, ktorá sa používa na počítanie hašovateľných objektov. Pri vyvolaní implicitne vytvorí hašovaciu tabuľku iterovateľného.
prvky() je jednou z funkcií triedy Counter, ktorá pri vyvolaní na objekt Counter vráti itertool všetkých známych prvkov v objekte Counter.
parametre: Neberie žiadne parametre
Typ návratu: Vráti itertool pre všetky prvky s kladným počtom v objekte Counter
Chyby a výnimky:
-> Pri priamom vytlačení vytlačí hodnotu odpadkov, pretože vráti itertool, nie konkrétny dátový kontajner.
-> Ak je počet položky už inicializovaný v objekte Counter, potom bude ignorovať položky s nulou a zápornými hodnotami.
Kód #1: Práca prvkov() na jednoduchom dátovom kontajneri
Python3
# import counter class from collections module> from> collections> import> Counter> # Creation of a Counter Class object using> # string as an iterable data container> x> => Counter(> 'geeksforgeeks'> )> # printing the elements of counter object> for> i> in> x.elements():> > print> ( i, end> => ' '> )> |
Výkon:
g g e e e e k k s s f o r
Môžeme tiež vytvoriť objekt triedy Counter pomocou zoznamu ako iterovateľného dátového kontajnera.
Python3
# import counter class from collections module> from> collections> import> Counter> #Creating a Counter class object using list as an iterable data container> a> => [> 12> ,> 3> ,> 4> ,> 3> ,> 5> ,> 11> ,> 12> ,> 6> ,> 7> ]> x> => Counter(a)> #directly printing whole x> print> (x)> #We can also use .keys() and .values() methods to access Counter class object> for> i> in> x.keys():> > print> (i,> ':'> , x[i])> > #We can also make a list of keys and values of x> x_keys> => list> (x.keys())> x_values> => list> (x.values())> print> (x_keys)> print> (x_values)> |
Výkon:
Counter({12: 2, 3: 2, 4: 1, 5: 1, 11: 1, 6: 1, 7: 1}) 12 : 2 3 : 2 4 : 1 5 : 1 11 : 1 6 : 1 7 : 1 [12, 3, 4, 5, 11, 6, 7] [2, 2, 1, 1, 1, 1, 1] Kód #2: Prvky na rôznych objektoch počítadla s rôznymi dátovými kontajnermi
Python3
# import counter class from collections module> from> collections> import> Counter> # Creation of a Counter Class object using> # a string as an iterable data container> # Example - 1> a> => Counter(> 'geeksforgeeks'> )> # Elements of counter object> for> i> in> a.elements():> > print> ( i, end> => ' '> )> print> ()> > # Example - 2> b> => Counter({> 'geeks'> :> 4> ,> 'for'> :> 1> ,> > 'gfg'> :> 2> ,> 'python'> :> 3> })> for> i> in> b.elements():> > print> ( i, end> => ' '> )> print> ()> # Example - 3> c> => Counter([> 1> ,> 2> ,> 21> ,> 12> ,> 2> ,> 44> ,> 5> ,> > 13> ,> 15> ,> 5> ,> 19> ,> 21> ,> 5> ])> for> i> in> c.elements():> > print> ( i, end> => ' '> )> print> ()> > # Example - 4> d> => Counter( a> => 2> , b> => 3> , c> => 6> , d> => 1> , e> => 5> )> for> i> in> d.elements():> > print> ( i, end> => ' '> )> |
Výkon:
g g e e e e k k s s f o r geeks geeks geeks geeks for gfg gfg python python python 1 2 2 21 21 12 44 5 5 5 13 15 19 a a b b b c c c c c c d e e e e e
Kód #3: Na demonštráciu toho, aké elementy() sa vrátia, keď sú vytlačené priamo
Python3
# import Counter from collections> from> collections> import> Counter> # creating a raw data-set> x> => Counter (> 'geeksforgeeks'> )> # will return a itertools chain object> # which is basically a pseudo iterable container whose> # elements can be used when called with a iterable tool> print> (x.elements())> |
Výkon:
itertools.chain object at 0x037209F0
Kód #4: Keď je počet položky v počítadle inicializovaný zápornými hodnotami alebo nulou.
Python3
# import Counter from collections> from> collections> import> Counter> # creating a raw data-set using keyword arguments> x> => Counter (a> => 2> , x> => 3> , b> => 3> , z> => 1> , y> => 5> , c> => 0> , d> => -> 3> )> # printing out the elements> for> i> in> x.elements():> > print> (> '% s : % s'> %> (i, x[i]), end> => '
'> )> |
Výkon:
a : 2 a : 2 x : 3 x : 3 x : 3 b : 3 b : 3 b : 3 z : 1 y : 5 y : 5 y : 5 y : 5 y : 5
Poznámka: Z výstupu môžeme usúdiť, že položky s hodnotami menšími ako 1 sú vynechané elementom().
Aplikácie:
Objekt počítadla spolu s jeho funkciami sa kolektívne používajú na spracovanie obrovského množstva údajov. Vidíme, že Counter() vytvára hash-mapu pre dátový kontajner s ním vyvolaný, čo je veľmi užitočné ako pri ručnom spracovaní prvkov. Je to jeden z veľmi vysokých spracovateľských a funkčných nástrojov a dokonca dokáže fungovať aj so širokou škálou dát.