<p>假设我有2个bigs数组(我在这个例子中放了更小的数组):</p>
<pre><code>a1=bytes([10,20,30,40,50,60,70,80])
a2=bytes([11,21,31,41,51,61,71,81])
</code></pre>
<p>我要做的是这样合并这两个数组:</p>
^{pr2}$
<p>我想要的是从第一个数组取2个字节,然后从第二个数组取2个字节,等等</p>
<p>这就是我所做的。它是可行的,但我认为有一个最好的方法来做到这一点,而不必创建中间产物数组:</p>
<pre><code>a3 = bytearray()
for i in range(0, len(a1), 2):
a3.<a href="https://www.cnpython.com/list/append" class="inner-link">append</a>(a1[i])
a3.append(a1[i+1])
a3.append(b1[i])
a3.append(b1[i+1])
output_array=bytes(a3) # Very important: i need bytes() object at the end
</code></pre>
<p>这是另一种选择:</p>
<pre><code>a1=bytes([10,20,30,40,50,60,70,80])
a2=bytes([11,21,31,41,51,61,71,81])
merged = bytes((a1 if (i&3)<2 else a2)[i-(i&2)-2*(i>>2)]
for i in range(2*len(a1)))
</code></pre>