|
| Filtrere i et array Fra : Lars Kim Lund |
Dato : 14-08-02 16:56 |
|
Er der en smart måde jeg kan filtrere et array med et andet? Dvs. hvis
et element i array A er indeholdt i array B så skal det slettes fra A.
Jeg kan godt lave noget grim kode hvor jeg looper igennem array B for
hvert element i A, men jeg tænkte om der var en anden måde.
--
Lars Kim Lund
http://www.net-faq.dk/
| |
Lars Balker Rasmusse~ (14-08-2002)
| Kommentar Fra : Lars Balker Rasmusse~ |
Dato : 14-08-02 17:02 |
|
Lars Kim Lund <lkl@fabel.dk> writes:
> Er der en smart måde jeg kan filtrere et array med et andet? Dvs. hvis
> et element i array A er indeholdt i array B så skal det slettes fra A.
>
> Jeg kan godt lave noget grim kode hvor jeg looper igennem array B for
> hvert element i A, men jeg tænkte om der var en anden måde.
Brug en hash.
@A = (1,2,3);
@B = (2);
%B = map { $_ => 1 } @B;
@AudenB = grep { !$B{$_} } @A;
print @A;
--
Lars Balker Rasmussen "S.M.R.T."
| |
Lars Kim Lund (14-08-2002)
| Kommentar Fra : Lars Kim Lund |
Dato : 14-08-02 17:51 |
|
Lars Balker Rasmussen <lars@balker.org> wrote:
>> Jeg kan godt lave noget grim kode hvor jeg looper igennem array B for
>> hvert element i A, men jeg tænkte om der var en anden måde.
>
>Brug en hash.
>
>@A = (1,2,3);
>@B = (2);
>
>%B = map { $_ => 1 } @B;
>@AudenB = grep { !$B{$_} } @A;
>
>print @A;
Du mente sikkert print @AudenB. Det virker fint, tak. Den ligner den
dupe-check metode jeg tror du har vist mig tidligere, så jeg burde
have gennemskuet den.
Mange tak.
--
Lars Kim Lund
http://www.net-faq.dk/
| |
Peter Makholm (14-08-2002)
| Kommentar Fra : Peter Makholm |
Dato : 14-08-02 18:02 |
|
Lars Balker Rasmussen <lars@balker.org> writes:
> @AudenB = grep { !$B{$_} } @A;
@AudenB = grep { ! exists $B{$_} } @A;
Hvis @B også kan indeholde værdier perl fortolker som falsk.
--
Peter Makholm | We constantly have to keep in mind why natural
peter@makholm.net | languages are good at what they're good at. And to
http://hacking.dk | never forget that Perl is a human language first,
| and a computer language second
| |
Lars Balker Rasmusse~ (14-08-2002)
| Kommentar Fra : Lars Balker Rasmusse~ |
Dato : 14-08-02 18:04 |
|
Peter Makholm <peter@makholm.net> writes:
> Lars Balker Rasmussen <lars@balker.org> writes:
> > @AudenB = grep { !$B{$_} } @A;
>
> @AudenB = grep { ! exists $B{$_} } @A;
>
> Hvis @B også kan indeholde værdier perl fortolker som falsk.
Nej, $B{noget} er enten undef eller 1.
> > %B = map { $_ => 1 } @B;
--
Lars Balker Rasmussen "S.M.R.T."
| |
Peter Makholm (14-08-2002)
| Kommentar Fra : Peter Makholm |
Dato : 14-08-02 18:19 |
|
Lars Balker Rasmussen <lars@balker.org> writes:
> Nej, $B{noget} er enten undef eller 1.
Du troedede da ikke at jeg læste det indlæg jeg svarede på.
--
Peter Makholm | Emacs is the only modern general-purpose
peter@makholm.net | operating system that doesn't multitask
http://hacking.dk |
| |
Lars Balker Rasmusse~ (14-08-2002)
| Kommentar Fra : Lars Balker Rasmusse~ |
Dato : 14-08-02 18:28 |
|
Peter Makholm <peter@makholm.net> writes:
> Lars Balker Rasmussen <lars@balker.org> writes:
> > Nej, $B{noget} er enten undef eller 1.
>
> Du troedede da ikke at jeg læste det indlæg jeg svarede på.
Grøn.
--
Lars Balker Rasmussen "S.M.R.T."
| |
Dennis Haney (02-09-2002)
| Kommentar Fra : Dennis Haney |
Dato : 02-09-02 08:21 |
|
Lars Kim Lund <lkl@fabel.dk> writes:
> Er der en smart måde jeg kan filtrere et array med et andet? Dvs. hvis
> et element i array A er indeholdt i array B så skal det slettes fra A.
>
> Jeg kan godt lave noget grim kode hvor jeg looper igennem array B for
> hvert element i A, men jeg tænkte om der var en anden måde.
man perlfaq4
kig under "How do I compute the difference of two arrays? How do I compute the intersection of two arrays?"
--
Dennis
I have always thought explanations were overkill when correcting
mistakes. A simple "that's wrong" must suffice. I mean, people are
always aware why they are wrong. They just make mistakes to annoy you.
| |
Dennis Haney (02-09-2002)
| Kommentar Fra : Dennis Haney |
Dato : 02-09-02 08:40 |
|
> Dennis Haney <davh@diku.dk> writes:
>
> > Lars Kim Lund <lkl@fabel.dk> writes:
> >
> > > Er der en smart måde jeg kan filtrere et array med et andet? Dvs. hvis
> > > et element i array A er indeholdt i array B så skal det slettes fra A.
> > >
> > > Jeg kan godt lave noget grim kode hvor jeg looper igennem array B for
> > > hvert element i A, men jeg tænkte om der var en anden måde.
> >
> > man perlfaq4
> >
> > kig under "How do I compute the difference of two arrays? How do I compute the intersection of two arrays?"
>
Lars Balker Rasmussen <lars@balker.org> writes:
>
> Det er ikke noget godt svar, for det er jo ikke en af de to ting Lars vil.
B-A? Det er det jeg ville kalde en difference af to arrays... Desværre
har du alligevel ret, da faq'en kun omtaler symmetrisk difference.
Ps.
Send venligst dine svar til nyhedsgruppen og ikke til min personlige post!
--
Dennis
I have always thought explanations were overkill when correcting
mistakes. A simple "that's wrong" must suffice. I mean, people are
always aware why they are wrong. They just make mistakes to annoy you.
| |
Lars Balker Rasmusse~ (02-09-2002)
| Kommentar Fra : Lars Balker Rasmusse~ |
Dato : 02-09-02 09:41 |
|
Dennis Haney <davh@diku.dk> writes:
> Ps.
> Send venligst dine svar til nyhedsgruppen og ikke til min personlige post!
Hov, det var en smutter.
--
Lars Balker Rasmussen "S.M.R.T."
| |
|
|