title: Pythonic way to combine (interleave, interlace, intertwine) two lists in an alternating fashion?
body: <p>I have two lists, <strong>the first of which is guaranteed to contain exactly one more item than the second</strong>. I would like to know the most Pythonic way to create a new list whose even-index values come from the first list and whose odd-index values come from the second list.</p>
  <pre><code># example inputs
  list1 = ['f', 'o', 'o']
  list2 = ['hello', 'world']
  
  # desired output
  ['f', 'hello', 'o', 'world', 'o']
  </code></pre>
  <p>This works, but isn't pretty:</p>
  <pre><code>list3 = []
  while True:
      try:
          list3.append(list1.pop(0))
          list3.append(list2.pop(0))
      except IndexError:
          break
  </code></pre>
  <p>How else can this be achieved? What's the most Pythonic approach?</p>
  <hr />
  <p><sub>If you need to handle lists of <em>mismatched length</em> (e.g. the second list is longer, or the first has more than one element more than the second), some solutions here will work while others will require adjustment. For more specific answers, see <a href="https://stackoverflow.com/questions/48199961/">How to interleave two lists of different length?</a> to leave the excess elements at the end, or <a href="https://stackoverflow.com/questions/19293481/">How to elegantly interleave two lists of uneven length in python?</a> to try to intersperse elements evenly.</sub></p>