Slartibartfast
Slartibartfast

Reputation: 1190

Counting the number of days in a list

I have the following code which produces this:

print([x.to_list() for x in a])

[['Wednesday'], ['Friday'], ['Tuesday'], ['Wednesday'], ['Monday'], ['Wednesday'], ['Friday'], ['Tuesday'], ['Wednesday', 'Thursday'], ['Thursday', 'Monday'], ['Friday'], ['Wednesday', 'Thursday'], ['Monday'], ['Monday'], ['Monday'], ['Tuesday', 'Thursday'], ['Tuesday'], ['Tuesday'], ['Wednesday'], ['Wednesday'], ['Monday'], ['Thursday'], ['Monday'], ['Wednesday'], ['Monday'], ['Wednesday'], ['Thursday'], ['Monday'], ['Monday'], ['Friday'], ['Tuesday'], ['Monday'], ['Monday'], ['Thursday']]

What i want to do is count the number of each days. So which day is in this list how many times.

a produces this:

[Index(['Wednesday'], dtype='object', name='Date'),
 Index(['Friday'], dtype='object', name='Date'),
 Index(['Tuesday'], dtype='object', name='Date'),
 Index(['Wednesday'], dtype='object', name='Date'),
 Index(['Monday'], dtype='object', name='Date'),
 Index(['Wednesday'], dtype='object', name='Date'),
 Index(['Friday'], dtype='object', name='Date'),
 Index(['Tuesday'], dtype='object', name='Date'),
 Index(['Wednesday', 'Thursday'], dtype='object', name='Date'),
 Index(['Thursday', 'Monday'], dtype='object', name='Date'),
 Index(['Friday'], dtype='object', name='Date'),

which i why i tried to turn it in to a list.

Upvotes: 0

Views: 189

Answers (3)

Shreyas Prakash
Shreyas Prakash

Reputation: 614

You can do this

dict = {'Monday' : 0,
        'Tuesday' : 0,
        'Wednesday' : 0,
        'Thursday' : 0,
        'Friday' : 0,
        'Saturday' : 0,
        'Sunday' : 0
}
days=[['Wednesday'], ['Friday'], ['Tuesday'], ['Wednesday'], ['Monday'], ['Wednesday'], ['Friday'], ['Tuesday'], ['Wednesday', 'Thursday'], ['Thursday', 'Monday'], ['Friday'], ['Wednesday', 'Thursday'], ['Monday'], ['Monday'], ['Monday'], ['Tuesday', 'Thursday'], ['Tuesday'], ['Tuesday'], ['Wednesday'], ['Wednesday'], ['Monday'], ['Thursday'], ['Monday'], ['Wednesday'], ['Monday'], ['Wednesday'], ['Thursday'], ['Monday'], ['Monday'], ['Friday'], ['Tuesday'], ['Monday'], ['Monday'], ['Thursday']]
for day in days:
    for item in day:
        if(item=='Monday'):
            dict['Monday']+=1
        elif(item=='Tuesday'):
            dict['Tuesday']+=1
        elif(item=='Wednesday'):
            dict['Wednesday']+=1
        elif(item=='Thursday'):
            dict['Thursday']+=1
        elif(item=='Friday'):
            dict['Friday']+=1        
        elif(item=='Saturday'):
            dict['Saturday']+=1    
        elif(item=='Sunday'):
            dict['Sunday']+=1 
print(dict)

Upvotes: 1

Nothing special
Nothing special

Reputation: 415

lst = [['Wednesday'], ['Friday'], ['Tuesday'], ['Wednesday'], ['Monday'], ['Wednesday'], ['Friday'], ['Tuesday'], ['Wednesday', 'Thursday'], ['Thursday', 'Monday'], ['Friday'], ['Wednesday', 'Thursday'], ['Monday'], ['Monday'], ['Monday'], ['Tuesday', 'Thursday'], ['Tuesday'], ['Tuesday'], ['Wednesday'], ['Wednesday'], ['Monday'], ['Thursday'], ['Monday'], ['Wednesday'], ['Monday'], ['Wednesday'], ['Thursday'], ['Monday'], ['Monday'], ['Friday'], ['Tuesday'], ['Monday'], ['Monday'], ['Thursday']]
d = {}
for i in lst:
    for j in i:
        d[j] = d.get(j, 0)+1
print(d)

Output:

{'Wednesday': 9, 'Friday': 4, 'Tuesday': 6, 'Monday': 12, 'Thursday': 7}

Upvotes: 2

qkfsbxjayiedbe
qkfsbxjayiedbe

Reputation: 145

from collections import Counter
l = [['Wednesday'], ['Friday'], ['Tuesday'], ['Wednesday'], ['Monday'], ['Wednesday'], ['Friday'], ['Tuesday'], ['Wednesday', 'Thursday'], ['Thursday', 'Monday'], ['Friday'], ['Wednesday', 'Thursday'], ['Monday'], ['Monday'], ['Monday'], ['Tuesday', 'Thursday'], ['Tuesday'], ['Tuesday'], ['Wednesday'], ['Wednesday'], ['Monday'], ['Thursday'], ['Monday'], ['Wednesday'], ['Monday'], ['Wednesday'], ['Thursday'], ['Monday'], ['Monday'], ['Friday'], ['Tuesday'], ['Monday'], ['Monday'], ['Thursday']]

Counter([x for sublist in l for x in sublist])

Out:

Counter({'Wednesday': 9,
         'Friday': 4,
         'Tuesday': 6,
         'Monday': 12,
         'Thursday': 7})

You can access the items inside Counter like a usual dictionary.

Upvotes: 2

Related Questions