Portál AbcLinuxu, 9. května 2025 19:35

Dotaz: PERL - odstranění duplicit v poli a jejich spočítání

5.12.2010 13:36 Pirkil
PERL - odstranění duplicit v poli a jejich spočítání
Přečteno: 569×
Odpovědět | Admin
Ahoj, učím se základy programování v PERLu a mám problém. Potřebuju napsat program na počítání písmen v textovém souboru. Došel jsem do fáze, kdy mám všechna písmena uložená v poli @abcd. (Je jich mnoho a opakují se.) Nyní potřebuju z pole dostat frekvenci jednotlivých písmen a uložit každé písmeno s jeho frekvencí do hashe. (Můžu to sice udělat tak, že dám vypsat prvky pole po řádcích, uložím výstup programu do textového souboru a potom zadám v shellu:

sort soubor.txt | uniq -c

ale, já bych chtěl posléze setřídit klíče hashe a udělat to celé v Perlu.)

Díky moc za pomoc!

Řešení dotazu:


Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

5.12.2010 14:17 Ondřej Kopka | skóre: 20 | blog: ondrejk
Rozbalit Rozbalit vše Re: PERL - odstranění duplicit v poli a jejich spočítání
Odpovědět | | Sbalit | Link | Blokovat | Admin
to by melo resit neco v tomto smyslu:
my $hash = {};
foreach my $item (@array) {
 $hash->{$item}->{count}++;
}
Řešení 1× (buff)
5.12.2010 14:18 Ondřej Kopka | skóre: 20 | blog: ondrejk
Rozbalit Rozbalit vše Re: PERL - odstranění duplicit v poli a jejich spočítání
vlastne by stacilo i $hash->{$item}++
wamba avatar 6.12.2010 18:20 wamba | skóre: 38 | blog: wamba
Rozbalit Rozbalit vše Re: PERL - odstranění duplicit v poli a jejich spočítání
nemá to být $hash{$item}++ ?
This would have been so hard to fix when you don't know that there is in fact an easy fix.
wamba avatar 6.12.2010 18:22 wamba | skóre: 38 | blog: wamba
Rozbalit Rozbalit vše Re: PERL - odstranění duplicit v poli a jejich spočítání
odpovím si sám nemá, muselo by být my %hash místo my $hash
This would have been so hard to fix when you don't know that there is in fact an easy fix.
Řešení 1× (Pirkil (tazatel))
5.12.2010 14:23 Ondřej Kopka | skóre: 20 | blog: ondrejk
Rozbalit Rozbalit vše Re: PERL - odstranění duplicit v poli a jejich spočítání
5.12.2010 19:35 Pirkil
Rozbalit Rozbalit vše Re: PERL - odstranění duplicit v poli a jejich spočítání
Nakonec jsem to udělal pomocí funkce map. Četl jsem o ní už dřív, ale nevěděl jsem, jak se používá. Souvisí to s tím, že moc neznám funkci operátoru $_ . Experimentální cestou jsem na to přišel. :) Díky za pomoc!
5.12.2010 21:50 Jirka P
Rozbalit Rozbalit vše Re: PERL - odstranění duplicit v poli a jejich spočítání
Když už si hrát s mapem, proč to neudělat takto:
my %counts=(map {($_, 0)} @arr);
keys %counts;
6.12.2010 01:21 Pirkil
Rozbalit Rozbalit vše Re: PERL - odstranění duplicit v poli a jejich spočítání
...chtěl jsem říct funkci speciální proměnné... :)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.