/ Forside / Teknologi / Udvikling / Perl / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Perl
#NavnPoint
bjarneA 141
poul_from 50
soccer 30
Nicknack 14
Tmpj 0
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

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408929
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste