Quick Filter Dictionary
Steve Holden
steve at holdenweb.com
Wed Mar 14 08:33:02 EDT 2007
abcd wrote:
> On Mar 14, 7:29 am, "abcd" <codecr... at gmail.com> wrote:
>> Hi,
>> I have a dictionary which may contain various keys/values, however,
>> it will always contain 'name' and 'age' keys.
>>
>> This dictionary is kept inside a class, such as....
>>
>> class Person:
>> def __init__(self, name, age):
>> self.data = {'name' : name, 'age' : age}
>>
>> def getData(self, includeNameAge=False):
>> if includeNameAge: return self.data
>> tmp = <shallow or deep copy of 'data'>
>> del tmp['name']
>> del tmp['age']
>> return tmp
>>
>> The getdata method should return the data stored for the
>> person, however, it should be able to return the data excluding the
>> 'name' and 'age'. Any suggestions on how to best implement this?
>> Keep in mind this sample code is meant to be an example, I realize
>> that a person would probably always want the name and age returned.
>>
>> thanks
>
>
> I guess one solution might be....
>
> def getData(self, includeNameAge=False):
> if includeNameAge: return self.data
> return dict(filter(lambda item: item[0] not in ('name', 'age'),
> self.data.items()))
>
> any other suggestions, improvements?
>
You might find
return dict((x,y) for (x, y) in self.data.iteritems()
if x not in ('name', 'age'))
easier to understand. Or you might not ...
regards
Steve
--
Steve Holden +44 150 684 7255 +1 800 494 3119
Holden Web LLC/Ltd http://www.holdenweb.com
Skype: holdenweb http://del.icio.us/steve.holden
Blog of Note: http://holdenweb.blogspot.com
See you at PyCon? http://us.pycon.org/TX2007
More information about the Python-list
mailing list