擅长:python、mysql、java
<p>有人建议你这样做:</p>
<pre><code>a = 1
b = [2, 3, 4, 5]
c = [a] + b
</code></pre>
<p>只要<code>b</code>是<code>list</code>类型,它就可以工作。但是,通常您会发现自己使用的对象是列表或元组,或者(在此处插入您最喜欢的iterable对象)。在这种情况下,可能更值得你花点时间:</p>
<pre><code>a = 1
b = (2, 3, 4, 5)
c = [a]
c.extend(b)
</code></pre>
<p>这使得整个事情对于<code>b</code>的类型是不可知的(这允许您的代码更加“ducky”,这可能是一种不错的方式)。</p>
<hr/>
<p>当然,还有其他的选择。例如,您可以选择访问<code>itertools</code>:</p>
<pre><code>import itertools
a = 1
b = [2, 3, 4, 5]
lazy_c = itertools.chain([a], b)
</code></pre>
<p>同样,我们有一个好处,就是不关心什么类型的iterable<code>b</code>,<em>和</em>我们有一个附带的好处,那就是惰性地迭代——我们不会生成一个新的列表或元组。我们只需要创建一个对象,当您迭代它时,它会产生相同的结果。这可以节省内存(有时还可以为您的CPU节省周期),但如果<code>b</code>也是一种类似生成器的对象,同时在其他地方迭代(这不是偶然发生的),也可能会产生不预期的后果。</p>