0 votes
1 view
in Data Science by (10.7k points)

I read a csv file, using DictReader.

I have a list of dictionaries:

eg:

a = [{'Name':'A','Class':'1'},{'Name':'B','Class':'1'},{'Name':'C','Class':'2'}]

I want to count the number of entries in the list that have 'Class' == 1.

Is it possible to do it without a loop?

EDIT:

I have tried the following:

count = 0

for k in a:

    if k['Class'] == '1':

        count += 1

print(count)

1 Answer

0 votes
by (15k points)

Yes,it is possible to do it without a loop by using sum with generator expression.

>>> xs = [{'Name':'A','Class':'1'},

          {'Name':'B','Class':'1'},

          {'Name':'C','Class':'2'}]

>>> sum(x.get('Class') == '1' for x in xs)

2

...