[Tutor] use of the newer dict types

Alan Gauld alan.gauld at btinternet.com
Fri Jul 26 13:12:19 CEST 2013


On 26/07/13 09:50, Albert-Jan Roskam wrote:

> if I have d = {1: 2}, I can do membership testing in the following
 > two ways --but which one is the preferred way?:
> if 1 in d:
>      pass
> if d.has_key(1):
>       pass


In addition to being more readable (and the fact it's the only way in 
v3) 'in' has another big advantage - it's polymorphic:

holds_1 = []
bigBox = [ {1:2,3:4}, ['a',2,;freddy',True], (1,2,3)  ]

for collection in bigBox:
    if 1 in collection:
       holds_1.append(collection)

You can't do that using has_key(), the code has to test
for dict type etc.

So all in all 'in' is the way to go.

-- 
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/



More information about the Tutor mailing list