|
| array problemer Fra : Christian Dannesboe |
Dato : 11-02-01 02:24 |
|
Hej
Hvordan tæller jeg antal poster i et array eller hash
Det virker lidt dumt at lave en lykke der tæller 1 for 1
Findes der en hurtig måde at tjekke om den given string findes i et array
eller hash uden at lave en lykke der tjekker alle værdier?
Christian@Dannesboe.dk
| |
Adam Sjøgren (12-02-2001)
| Kommentar Fra : Adam Sjøgren |
Dato : 12-02-01 02:53 |
|
On Sun, 11 Feb 2001 02:23:41 +0100, Christian Dannesboe wrote:
> Hvordan tæller jeg antal poster i et array eller hash
> Det virker lidt dumt at lave en lykke der tæller 1 for 1
Hvis du ikke vil det kan du sørge for at huske hvor mange gange du har
tilføjet/fjernet noget fra array'et/hash'en.
> Findes der en hurtig måde at tjekke om den given string findes i et
> array eller hash uden at lave en lykke der tjekker alle værdier?
Hvordan kan du vide om strengen findes, uden at checke alle elementer
i array'et (/alle værdier i hash'en)?
Hvis du har plads nok kan du naturligvis lave en hash der som nøgle
har de strenge som er i array'et/hash'en, så kan du checke med noget a
la if defined $allthestrings{$string}, forudsat at du husker at delete
i %allthestrings når du fjerner en streng fra array'et/hash'en - det
er vel den oplagte løsning i perl?
Mvh.
PS: Det hedder 'løkke' i dette tilfælde
--
"Han har ingenting at sige. Adam Sjøgren
Og det siger han så, asjo@koldfront.dk
så højt det nu kan blive"
| |
Lars Balker Rasmusse~ (12-02-2001)
| Kommentar Fra : Lars Balker Rasmusse~ |
Dato : 12-02-01 08:41 |
|
"Christian Dannesboe" <Christian@Dannesboe.dk> writes:
> Hvordan tæller jeg antal poster i et array
scalar @array
> eller hash
scalar keys %hash
> Findes der en hurtig måde at tjekke om den given string findes i et array
> eller hash uden at lave en lykke der tjekker alle værdier?
Nej.
--
Lars Balker Rasmussen "Woo hoo!?"
| |
Peter J. Acklam (11-02-2001)
| Kommentar Fra : Peter J. Acklam |
Dato : 11-02-01 10:38 |
|
"Christian Dannesboe" <Christian@Dannesboe.dk> writes:
> Hvordan tæller jeg antal poster i et array eller hash
$antall = @array; # array
$antall = keys %hash; # hash
> Findes der en hurtig måde at tjekke om den given string findes i
> et array eller hash uden at lave en lykke der tjekker alle
> værdier?
Det er ikke sikkert du behøver å ikke sjekke _alle_ verdiene. Du
stopper så snart du har funnet elementet du leter etter:
$found = 0;
foreach $element (@array) {
if ($element eq $string) {
$found = 1;
last;
}
}
Peter
--
sub int2roman{@x=split//,sprintf'%04d',shift;@r=('','I','V','X','L','C','D'
,'M');@p=([],[1],[1,1],[1,1,1],[1,2],[2],[2,1],[2,1,1],[2,1,1,1],[1,3],[3])
;join'',@r[map($_+6,@{$p[$x[0]]}),map($_+4,@{$p[$x[1]]}),map($_+2,@{$p[$x[2
]]}),map($_+0,@{$p[$x[3]]})];}print "@{[map{int2roman($_)}@ARGV]}\n";#JAPH!
| |
Thorbjørn Ravn Ander~ (12-02-2001)
| Kommentar Fra : Thorbjørn Ravn Ander~ |
Dato : 12-02-01 15:26 |
|
"Peter J. Acklam" wrote:
> sub int2roman{@x=split//,sprintf'%04d',shift;@r=('','I','V','X','L','C','D'
> ,'M');@p=([],[1],[1,1],[1,1,1],[1,2],[2],[2,1],[2,1,1],[2,1,1,1],[1,3],[3])
> ;join'',@r[map($_+6,@{$p[$x[0]]}),map($_+4,@{$p[$x[1]]}),map($_+2,@{$p[$x[2
> ]]}),map($_+0,@{$p[$x[3]]})];}print "@{[map{int2roman($_)}@ARGV]}\n";#JAPH!
Pæn, men du har glemt at skrive at den ikke virker fra 4000 og frem.
--
Thorbjørn Ravn Andersen "...sound of...Tubular Bells!"
http://bigfoot.com/~thunderbear
| |
Peter J. Acklam (12-02-2001)
| Kommentar Fra : Peter J. Acklam |
Dato : 12-02-01 18:33 |
|
Thorbjørn Ravn Andersen <thunderbear@bigfoot.com> writes:
> "Peter J. Acklam" wrote:
>
> > sub int2roman{@x=split//,sprintf'%04d',shift;@r=('','I','V','X','L','C','D'
> > ,'M');@p=([],[1],[1,1],[1,1,1],[1,2],[2],[2,1],[2,1,1],[2,1,1,1],[1,3],[3])
> > ;join'',@r[map($_+6,@{$p[$x[0]]}),map($_+4,@{$p[$x[1]]}),map($_+2,@{$p[$x[2
> > ]]}),map($_+0,@{$p[$x[3]]})];}print "@{[map{int2roman($_)}@ARGV]}\n";#JAPH!
>
> Pæn, men du har glemt at skrive at den ikke virker fra 4000 og frem.
Det var ikke plass. Signaturen ville blitt større enn det som er
lov.
Peter
--
sub int2roman{@x=split//,sprintf'%04d',shift;@r=('','I','V','X','L','C','D'
,'M');@p=([],[1],[1,1],[1,1,1],[1,2],[2],[2,1],[2,1,1],[2,1,1,1],[1,3],[3])
;join'',@r[map($_+6,@{$p[$x[0]]}),map($_+4,@{$p[$x[1]]}),map($_+2,@{$p[$x[2
]]}),map($_+0,@{$p[$x[3]]})];}print "@{[map{int2roman($_)}@ARGV]}\n";#JAPH!
| |
Thorbjørn Ravn Ander~ (12-02-2001)
| Kommentar Fra : Thorbjørn Ravn Ander~ |
Dato : 12-02-01 15:27 |
|
Christian Dannesboe wrote:
> Findes der en hurtig måde at tjekke om den given string findes i et array
> eller hash uden at lave en lykke der tjekker alle værdier?
Du kan få løkken foræret ved at bruge values og map.
--
Thorbjørn Ravn Andersen "...sound of...Tubular Bells!"
http://bigfoot.com/~thunderbear
| |
|
|