Aftrekken van lists...

View: New views
6 Messages — Rating Filter:   Alert me  

Aftrekken van lists...

by Andre van der Vlies :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


Hoi,
Is er geen '-' (__sub__) operator voor lists??

Je kan wel twee lists optellen, maar niet aftrekken?

Bijv.
foo = ["bla", "blie", "blo", "blub"]
bar = ["blie", "blub"]

foo + bar = ["bla", "blie", "blo", "blub", "blie", "blub"]

foo - bar = TypeError: unsupported operand type(s) for -: 'list' and 'list'

Ik doe nu zoiets als:
    result = [ i for i in foo if i not in bar ]
    result = ["bla",  "blo"]


Wat ikzelf nogal cryptisch vindt...

Iets voor een PEP? Of is dat overdreven?


--
               Andre van der Vlies <andre@...>
               Certifiable Linux/UNIX engineer (CLUE)
               Homepage: http://vandervlies.xs4all.nl/~andre
Key fingerprint = 397C 7479 67DB 9306 23DC B423 7B58 CD5A 6EFF 5CF8
--
    "Programming isn't a craft, it's an art."
    ()  ascii ribbon campaign - against html e-mail
    /\                        - against microsoft attachments
                              ^[^#]
--

_______________________________________________
Python-nl mailing list
Python-nl@...
http://mail.python.org/mailman/listinfo/python-nl
--
               Andre van der Vlies <andre@vandervlies.xs4all.nl>
               Certifiable Linux/UNIX engineer (CLUE)
               Homepage: http://vandervlies.xs4all.nl/~andre
Key fingerprint = 397C 7479 67DB 9306 23DC B423 7B58 CD5A 6EFF 5CF8
--
    "Programming isn't a craft, it's an art."
    ()  ascii ribbon campaign - against html e-mail
    /\                        - against microsoft attachments
                              ^[^#]
--

Re: Aftrekken van lists...

by Rob Hooft :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Andre,

De manier waarop jij een list gebruiken wilt lijkt meer op een set.
Probeer het eens met sets te doen!

amigo2[128]% python
Python 2.4.4 (#2, Jan  3 2008, 13:36:28)
[GCC 4.2.3 20071123 (prerelease) (Debian 4.2.2-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> set((1,2,3))-set((1,))
set([2, 3])
>>>

Rob


Op 01-03-08 heeft Andre van der Vlies<andre@...> het
volgende geschreven:

>
>  Hoi,
>  Is er geen '-' (__sub__) operator voor lists??
>
>  Je kan wel twee lists optellen, maar niet aftrekken?
>
>  Bijv.
>  foo = ["bla", "blie", "blo", "blub"]
>  bar = ["blie", "blub"]
>
>  foo + bar = ["bla", "blie", "blo", "blub", "blie", "blub"]
>
>  foo - bar = TypeError: unsupported operand type(s) for -: 'list' and 'list'
>
>  Ik doe nu zoiets als:
>     result = [ i for i in foo if i not in bar ]
>     result = ["bla",  "blo"]
>
>
>  Wat ikzelf nogal cryptisch vindt...
>
>  Iets voor een PEP? Of is dat overdreven?
>
>
>  --
>                Andre van der Vlies <andre@...>
>                Certifiable Linux/UNIX engineer (CLUE)
>                Homepage: http://vandervlies.xs4all.nl/~andre
>  Key fingerprint = 397C 7479 67DB 9306 23DC B423 7B58 CD5A 6EFF 5CF8
>  --
>     "Programming isn't a craft, it's an art."
>     ()  ascii ribbon campaign - against html e-mail
>     /\                        - against microsoft attachments
>                               ^[^#]
>
> --
>
>  _______________________________________________
>  Python-nl mailing list
>  Python-nl@...
>  http://mail.python.org/mailman/listinfo/python-nl
>


--
Rob W. W. Hooft || rob@... || http://www.hooft.net/people/rob
_______________________________________________
Python-nl mailing list
Python-nl@...
http://mail.python.org/mailman/listinfo/python-nl

Re: Aftrekken van lists...

by Andre van der Vlies :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


Rob Hooft wrote:

> Andre,
>
> De manier waarop jij een list gebruiken wilt lijkt meer op een set.
> Probeer het eens met sets te doen!
>
> amigo2[128]% python
> Python 2.4.4 (#2, Jan  3 2008, 13:36:28)
> [GCC 4.2.3 20071123 (prerelease) (Debian 4.2.2-4)] on linux2
> Type "help", "copyright", "credits" or "license" for more information.
>>>> set((1,2,3))-set((1,))
> set([2, 3])
>>>>

Mkee...
Dan wordt 't zoiets als dit dus:
      list( set(foo) - set(bar) )

Ik moet 't met lists doen...

En dan nog... 't Lijkt mij 'onvolledig' dat je wel lists kan optellen maar niet van
elkaar aftrekken.

>
> Op 01-03-08 heeft Andre van der Vlies<andre@...> het
> volgende geschreven:
>>
>>  Hoi,
>>  Is er geen '-' (__sub__) operator voor lists??
>>
>>  Je kan wel twee lists optellen, maar niet aftrekken?
>>
>>  Bijv.
>>  foo = ["bla", "blie", "blo", "blub"]
>>  bar = ["blie", "blub"]
>>
>>  foo + bar = ["bla", "blie", "blo", "blub", "blie", "blub"]
>>
>>  foo - bar = TypeError: unsupported operand type(s) for -: 'list' and 'list'
>>
>>  Ik doe nu zoiets als:
>>     result = [ i for i in foo if i not in bar ]
>>     result = ["bla",  "blo"]
>>
>>
>>  Wat ikzelf nogal cryptisch vindt...
>>
>>  Iets voor een PEP? Of is dat overdreven?
>>
>>
>>  --
>>                Andre van der Vlies <andre@...>
>>                Certifiable Linux/UNIX engineer (CLUE)
>>                Homepage: http://vandervlies.xs4all.nl/~andre
>>  Key fingerprint = 397C 7479 67DB 9306 23DC B423 7B58 CD5A 6EFF 5CF8
>>  --
>>     "Programming isn't a craft, it's an art."
>>     ()  ascii ribbon campaign - against html e-mail
>>     /\                        - against microsoft attachments
>>                               ^[^#]
>>
>> --
>>
>>  _______________________________________________
>>  Python-nl mailing list
>>  Python-nl@...
>>  http://mail.python.org/mailman/listinfo/python-nl
>>
>
>
> --
> Rob W. W. Hooft || rob@... || http://www.hooft.net/people/rob
>


--
               Andre van der Vlies <andre@...>
               Certifiable Linux/UNIX engineer (CLUE)
               Homepage: http://vandervlies.xs4all.nl/~andre
Key fingerprint = 397C 7479 67DB 9306 23DC B423 7B58 CD5A 6EFF 5CF8
--
    "Programming isn't a craft, it's an art."
    ()  ascii ribbon campaign - against html e-mail
    /\                        - against microsoft attachments
                              ^[^#]
--

_______________________________________________
Python-nl mailing list
Python-nl@...
http://mail.python.org/mailman/listinfo/python-nl
--
               Andre van der Vlies <andre@vandervlies.xs4all.nl>
               Certifiable Linux/UNIX engineer (CLUE)
               Homepage: http://vandervlies.xs4all.nl/~andre
Key fingerprint = 397C 7479 67DB 9306 23DC B423 7B58 CD5A 6EFF 5CF8
--
    "Programming isn't a craft, it's an art."
    ()  ascii ribbon campaign - against html e-mail
    /\                        - against microsoft attachments
                              ^[^#]
--

Re: Aftrekken van lists...

by Ivo Timmermans-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Het probleem met lists is dat volgorde en positie in de lijst belangrijk zijn.
Bij voorbeeld, wat zou: [1, 2, 3] - [2] moeten teruggeven?  [1, 3], [1, None, 3], of nog iets anders?  [1, 2, 3] als resultaat is ook te verdedigen, immers op element 0 in de eerste lijst staat geen 2.

In sets is de volgorde niet belangrijk, en kan dus een element op een zinvolle manier eruit verwijderd worden.


Op 1-mrt-2008, om 23:48 heeft Andre van der Vlies het volgende geschreven:

Rob Hooft wrote:
Andre,

De manier waarop jij een list gebruiken wilt lijkt meer op een set.
Probeer het eens met sets te doen!

amigo2[128]% python
Python 2.4.4 (#2, Jan  3 2008, 13:36:28)
[GCC 4.2.3 20071123 (prerelease) (Debian 4.2.2-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
set((1,2,3))-set((1,))
set([2, 3])


Mkee...
Dan wordt 't zoiets als dit dus:
      list( set(foo) - set(bar) )

Ik moet 't met lists doen...

En dan nog... 't Lijkt mij 'onvolledig' dat je wel lists kan optellen maar niet van
elkaar aftrekken.


Op 01-03-08 heeft Andre van der Vlies<andre@...> het
volgende geschreven:

 Hoi,
 Is er geen '-' (__sub__) operator voor lists??

 Je kan wel twee lists optellen, maar niet aftrekken?

 Bijv.
 foo = ["bla", "blie", "blo", "blub"]
 bar = ["blie", "blub"]

 foo + bar = ["bla", "blie", "blo", "blub", "blie", "blub"]

 foo - bar = TypeError: unsupported operand type(s) for -: 'list' and 'list'

 Ik doe nu zoiets als:
    result = [ i for i in foo if i not in bar ]
    result = ["bla",  "blo"]


 Wat ikzelf nogal cryptisch vindt...

 Iets voor een PEP? Of is dat overdreven?


 --
               Andre van der Vlies <andre@...>
               Certifiable Linux/UNIX engineer (CLUE)
               Homepage: http://vandervlies.xs4all.nl/~andre
 Key fingerprint = 397C 7479 67DB 9306 23DC B423 7B58 CD5A 6EFF 5CF8
 --
    "Programming isn't a craft, it's an art."
    ()  ascii ribbon campaign - against html e-mail
    /\                        - against microsoft attachments
                              ^[^#]

--

 _______________________________________________
 Python-nl mailing list



--



--
               Andre van der Vlies <andre@...>
               Certifiable Linux/UNIX engineer (CLUE)
               Homepage: http://vandervlies.xs4all.nl/~andre
Key fingerprint = 397C 7479 67DB 9306 23DC B423 7B58 CD5A 6EFF 5CF8
--
    "Programming isn't a craft, it's an art."
    ()  ascii ribbon campaign - against html e-mail
    /\                        - against microsoft attachments
                              ^[^#]
--

_______________________________________________
Python-nl mailing list

Ivo Timmermans
+31 (0)6-1400 5987

Treparel Information Solutions
Delftechpark 26, Suite 2-26
2628XH  Delft, Netherlands
KvK Haaglanden: 27285728
www.treparel.com



_______________________________________________
Python-nl mailing list
Python-nl@...
http://mail.python.org/mailman/listinfo/python-nl

Re: Aftrekken van lists...

by Armijn Hemel :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Sat, 2008-03-01 at 23:48 +0100, Andre van der Vlies wrote:
> En dan nog... 't Lijkt mij 'onvolledig' dat je wel lists kan optellen
> maar niet van
> elkaar aftrekken.

Misschien als je definieert wat "lijsten van elkaar aftrekken" betekent?

Stel, je hebt een lijst 'a' en een lijst 'b' en deze wil je van elkaar
aftrekken. Bedoel je dan:

* alle elementen die in a voorkomen, maar niet in b
* alle elementen die in a of b voorkomen, maar niet in beide

etc.

armijn

--
---------------------------------------------------------------------------
 armijn@... | http://www.uulug.nl/ | UULug: Utrecht Linux Users Group
---------------------------------------------------------------------------

_______________________________________________
Python-nl mailing list
Python-nl@...
http://mail.python.org/mailman/listinfo/python-nl

Re: Aftrekken van lists...

by Geert Stappers :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Op 01-03-2008 om 23:58 schreef Armijn Hemel:

> On Sat, 2008-03-01 at 23:48 +0100, Andre van der Vlies wrote:
> > En dan nog... 't Lijkt mij 'onvolledig' dat je wel lists kan optellen
> > maar niet van
> > elkaar aftrekken.
>
> Misschien als je definieert wat "lijsten van elkaar aftrekken" betekent?
>
> Stel, je hebt een lijst 'a' en een lijst 'b' en deze wil je van elkaar
> aftrekken. Bedoel je dan:
>
> * alle elementen die in a voorkomen, maar niet in b
> * alle elementen die in a of b voorkomen, maar niet in beide

Mijn inziens
wordt het plusteken ten onrechte door Andre gezien als optelteken.

De plus die hij bij lists gebruikt,
is dezelfde plus als om strings aan elkaar te plakken.

| $ python
| Python 2.4.4 (#2, Jan  3 2008, 13:39:07)
| [GCC 4.2.3 20071123 (prerelease) (Debian 4.2.2-4)] on linux2
| Type "help", "copyright", "credits" or "license" for more information.
| >>> print 'aan' + 'elkaar' + 'geplakt'
| aanelkaargeplakt
| >>>

Van die "plusteken bewerking" is ook geen "minteken bewerking" beschikbaar.


Cheers
Geert Stappers

_______________________________________________
Python-nl mailing list
Python-nl@...
http://mail.python.org/mailman/listinfo/python-nl
LightInTheBox - Buy quality products at wholesale price!