title: Why do some methods of built-in types operate in-place and some don't?
body: <pre><code>dog = 'penny'
  print(dog.title())
  
  dog_names = ['pete', 'luke', 'shane']
  print(dog_names.remove('shane'))
  </code></pre>
  
  <p>Why does Python return an output of <code>Penny</code> for <code>dog.title()</code> but <code>None</code> for 
  <code>dog_names.remove('shane')</code>? Why can I not print the list <code>dog_name</code> with the method <code>remove</code> while I can use the method <code>title</code> on <code>dog</code>?</p>
  
  <p>I understand that I get <code>None</code> because <code>dog_name.remove</code> has no return, but how does <code>dog.title</code> have a return?</p>