title: Finding the most popular words in a list
body: <p>I have a list of words:</p>
  
  <pre><code>words = ['all', 'awesome', 'all', 'yeah', 'bye', 'all', 'yeah']
  </code></pre>
  
  <p>And I want to get a list of tuples:</p>
  
  <pre><code>[(3, 'all'), (2, 'yeah'), (1, 'bye'), (1, 'awesome')]
  </code></pre>
  
  <p>where each tuple is...</p>
  
  <pre><code>(number_of_occurrences, word)
  </code></pre>
  
  <p>The list should be sorted by the number of occurrences.</p>
  
  <p>What I've done so far:</p>
  
  <pre><code>def popularWords(words):
      dic = {}
      for word in words:
          dic.setdefault(word, 0)
          dic[word] += 1
      wordsList = [(dic.get(w), w) for w in dic]
      wordsList.sort(reverse = True)
      return wordsList
  </code></pre>
  
  <p>The question is...</p>
  
  <p>Is it Pythonic, elegant and efficient?
  Are you able to do it better?
  Thanks in advance.</p>