title: Will `list.extend()` always operate one-by-one?
body: <p>I came up with a one-liner for factorials as</p>
  <pre class="lang-py prettyprint-override"><code>factorial = [n:=(1 if i==0 else n*i) for i in range(10)]
  </code></pre>
  <p>Now I'm thinking about a two-liner</p>
  <pre class="lang-py prettyprint-override"><code>factorial = [1]
  factorial.extend(factorial[-1]*i for i in range(1, 10))
  </code></pre>
  <p>It works on my Python 3.8 interpreter, but obviously this implementation depends on <code>list.extend()</code> operating in a one-by-one fashion. It will not work say, if <code>list.extend()</code> changes its implementation to adding things in batch.</p>
  <p>Is there any specification dictating this behavior on <code>list.extend</code>?</p>