Python | Počítadlo objektů | Prvky()

Čelit třída je speciální typ objektové datové sady dodávané s sbírky modul v Pythonu3. Modul Collections poskytuje uživateli specializované datové typy kontejnerů, čímž poskytuje alternativu k univerzálním vestavěným modulům Pythonu, jako jsou slovníky, seznamy a n-tice.

Čelit je podtřída, která se používá k počítání hašovatelných objektů. Při vyvolání implicitně vytvoří hašovací tabulku iterovatelného.

Prvky() je jednou z funkcí třídy Counter, při vyvolání na objektu Counter vrátí itertool všech známých prvků v objektu Counter.

Parametry: Nebere žádné parametry
Typ návratu: Vrátí itertool pro všechny prvky s kladným počtem v objektu Counter
Chyby a výjimky:
-> Při přímém tisku vytiskne hodnotu nesmyslu, protože vrací itertool, nikoli konkrétní datový kontejner.
-> Pokud je počet položky již inicializován v objektu Counter, bude ignorovat ty s nulovými a zápornými hodnotami.

Kód #1: Práce prvků elements() na jednoduchém datovém kontejneru

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ýstup:

g g e e e e k k s s f o r 

Můžeme také vytvořit objekt třídy Counter pomocí seznamu jako iterovatelného datového kontejneru.

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ýstup:

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ůzných objektech čítače s různými datovými kontejnery

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ýstup:

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: Pro demonstraci toho, jaké elementy() se vrátí, když je vytištěno přímo

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ýstup:

itertools.chain object at 0x037209F0 

Kód #4: Když je počet položky v počitadle inicializován zápornými hodnotami nebo 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ýstup:

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 usuzovat, že položky s hodnotami menšími než 1 jsou elementy( vynechány).

Aplikace:
Objekt čítače spolu s jeho funkcemi se hromadně používá pro zpracování velkého množství dat. Vidíme, že Counter() vytváří hash-mapu pro jím vyvolaný datový kontejner, což je velmi užitečné než při ručním zpracování prvků. Je to jeden z velmi náročných zpracovatelských a funkčních nástrojů a dokáže fungovat i se širokou škálou dat.