title: What does .split() change in this instance of code
body: <p>While I was practising List Comprehensions I stumbled onto this interesting situation.
  I was trying to print words which had less than four letters from the string assigned to the variable <code>string_1</code>.
  I thought I had finished this simple code and proceeded to run it. It was then that I realized that the output hadn't changed, the condition of &lt; 4 had altered nothing at all. I looked for some solutions and found one. My problem now is understanding why the first code didn't work but the second one did, to me they seem to do basically the same thing.</p>
  
  <p><strong>Code 1 (<em>Failed</em>):</strong></p>
  
  <pre><code>string_1 = "The quick brown fox jumps over the lazy dog"
  words = [word for word in string_1 if len(word) &lt; 4]
  print("".join(words))
  </code></pre>
  
  <p><strong>Code 1 (<em>output</em>):</strong> The quick brown fox jumps over the lazy dog</p>
  
  <p><strong>Code 2 (<em>Worked</em>):</strong></p>
  
  <pre><code>string_1 = "The quick brown fox jumps over the lazy dog"
  words = [word for word in string_1.split() if len(word) &lt; 4]
  print(" ".join(words))
  </code></pre>
  
  <p><strong>Code 2 (<em>output</em>):</strong> The fox the dog</p>