title: Why doesn't join() automatically convert its arguments to strings? When would you ever not want them to be strings?
body: <p>We have a list:</p>
  
  <pre><code>myList = [1, "two"]
  </code></pre>
  
  <p>And want to print it out, normally I would use something like:</p>
  
  <pre><code>"{0} and {1}".format(*myList)
  </code></pre>
  
  <p>But you could also do:</p>
  
  <pre><code>" and ".join(myList)
  </code></pre>
  
  <p>But unfortunately:</p>
  
  <pre><code>&gt;&gt;&gt; " and ".join(myList)
  Traceback (most recent call last):
    File "&lt;stdin&gt;", line 1, in &lt;module&gt;
  TypeError: sequence item 0: expected string, int found
  </code></pre>
  
  <p>Why doesn't it just automatically convert the list it receives to strings?</p>
  
  <p>When would you ever not need it to convert them to strings? Is there some tiny edge case I'm missing?</p>