So I have a list of words `wordList = list().\' Right now, I am counting each letter in each of the words throughout the whole list using this code
cnt = C
An alternative approach using the iterator combinators in itertools
:
import collections
import itertools
cnt = collections.Counter(itertools.chain.from_iterable(itertools.imap(set, wordList)))
cnt = Counter()
for word in wordList:
lSet = set(word)
for letter in lSet:
cnt[letter] +=1
cnt = Counter()
for words in wordList:
for letters in set(words):
cnt[letters]+=1
Add a set
call:
cnt = Counter()
for word in wordList:
for letter in set(word):
cnt[letter]+=1
You can eliminate a for
with update
, which updates count from an iterable (in this case, a string):
from collections import Counter
words = 'happy harpy hasty'.split()
c=Counter()
for word in words:
c.update(set(word))
print c.most_common()
print [a[0] for a in c.most_common()]
[('a', 3), ('h', 3), ('y', 3), ('p', 2), ('s', 1), ('r', 1), ('t', 1)]
['a', 'h', 'y', 'p', 's', 'r', 't']
import collections
cnt = collections.Counter('happy harpy hasty').keys()
cnt = list(cnt)
print(cnt)