Help counting the total number of dictionaries inside a list that contain a specified key value

Jon Bowlas me at jonbowlas.com
Tue Aug 12 08:19:00 EDT 2008


Hrmm, any ideas why I'd be getting 'SyntaxError: invalid syntax' for
both of these?

> sum(u'Level 2 Courses' in dct for dct in yourlist)
> q = set(['1']); print q, sum(d.get('level') in q for d in thelist)

The error occurs at the 'for'

I'm afraid I can't use Peters suggestion as I'm using python 2.3 and
it doesn't have the collection module. Thanks anyway.

Cheers

Jon

2008/8/12 Jon Bowlas <me at jonbowlas.com>:
> Many thanks for all your reponses, much appreciated.
>
> I'll get back to you on which is the best for me.
>
> BTW - yes John thats exactly what I wanted.
>
> Cheers
>
> Jon
>
> Jon Bowlas wrote:
>> For example I'd like to kow how many dictionaries there are with a
>> level 1, 2 , 23 & 3 etc. How would one go about achieveing this?
>>
>> Hope someone can help.
>
> sum(u'Level 2 Courses' in dct for dct in yourlist)
>
> Christian
>
> 2008/8/12 Jon Bowlas <me at jonbowlas.com>:
>> Hi All,
>>
>> I have the following list containing dictionaries and I would like to
>> be able to count the total number of dictionaries I have that contain
>> a certain value set for the 'level' key:
>>
>> [{'mod_title': u'Introduction to Human Anatomy', 'level': u'1',
>> 'modcode': u'ANAT1003', 'deptleveltext': u'', 'deptlevelheader':
>> u'Level 1 Courses', 'subj_code': u'AE'}, {'mod_title': u'Developmental
>> Neurobiology', 'level': u'2', 'modcode': u'ANAT2008', 'deptleveltext':
>> u'', 'deptlevelheader': u'Level 2 Courses', 'subj_code': u'AE'},
>> {'mod_title': u'Human Neuroanatomy', 'level': u'2', 'modcode':
>> u'ANAT2010', 'deptleveltext': u'', 'deptlevelheader': u'Level 2
>> Courses', 'subj_code': u'AE'}, {'mod_title': u'Human Anatomy and
>> Embryology', 'level': u'2', 'modcode': u'ANAT2050', 'deptleveltext':
>> u'', 'deptlevelheader': u'Level 2 Courses', 'subj_code': u'AE'},
>> {'mod_title': u'Ethics of Fertility and Embryo Research', 'level':
>> u'2', 'modcode': u'ANAT2099', 'deptleveltext': u'', 'deptlevelheader':
>> u'Level 2 Courses', 'subj_code': u'AE'}, {'mod_title': u"Man's Place
>> in Nature 1750-1900", 'level': u'23', 'modcode': u'HMED3001',
>> 'deptleveltext': u'', 'deptlevelheader': u'Level 2/3 Courses',
>> 'subj_code': u'AE'}, {'mod_title': u'Medicine, Disease and Society,
>> Antiquity to Renaissance ', 'level': u'23', 'modcode': u'HMED3003',
>> 'deptleveltext': u'', 'deptlevelheader': u'Level 2/3 Courses',
>> 'subj_code': u'AE'}, {'mod_title': u'Madness and Society', 'level':
>> u'23', 'modcode': u'HMED3004', 'deptleveltext': u'',
>> 'deptlevelheader': u'Level 2/3 Courses', 'subj_code': u'AE'}]
>>
>> For example I'd like to kow how many dictionaries there are with a
>> level 1, 2 , 23 & 3 etc. How would one go about achieveing this?
>>
>> Hope someone can help.
>>
>> Cheers
>>
>> Jon
>>
>



More information about the Python-list mailing list