[python-nl] Aftrekken van lists...

Ivo Timmermans ivo.timmermans at treparel.nl
Sat Mar 1 23:57:56 CET 2008


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 op vandervlies.xs4all.nl>  
>> 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 op 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
>>>                               ^[^#]
>>>
>>> --
>>>
>>>  _______________________________________________
>>>  Python-nl mailing list
>>>  Python-nl op python.org
>>>  http://mail.python.org/mailman/listinfo/python-nl
>>>
>>
>>
>> --
>> Rob W. W. Hooft || rob op hooft.net || http://www.hooft.net/people/rob
>>
>
>
> --
>                Andre van der Vlies <andre op 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
>                               ^[^#]
> --
>
> _______________________________________________
> Python-nl mailing list
> Python-nl op python.org
> http://mail.python.org/mailman/listinfo/python-nl

Ivo Timmermans
+31 (0)6-1400 5987
ivo.timmermans op treparel.nl

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


------------- volgend deel ------------
Een HTML-bijlage is verwijderd...
URL: http://mail.python.org/pipermail/python-nl/attachments/20080301/6d9af8d7/attachment-0001.htm 


More information about the Python-nl mailing list