擅长:python、mysql、java
<p>在Python中,字符串是不可变的。您向函数<code>onerand</code>传递一个字符串,参数名<code>packet</code>,复制它并给出一个本地名称<code>pack</code>(仍然是一个字符串,因此仍然是不可变的),然后您尝试这样做</p>
<pre><code>pack[whatever] = byte
</code></pre>
<p>索引并不重要:您正在尝试修改不可变的字符串。这就是错误信息告诉你的,在我看来,这是尽可能清楚的:你不能这样做。在</p>
<blockquote>
<p>I dont want to split in an array all
the byte</p>
</blockquote>
<p>如果你需要分配一些字符串,那么你肯定不能使用<strong>字符串</strong>。你对数组有什么看法?<code>import array</code>,用<code>pack = array.array('c', packet)</code>代替<code>pack = packet[:]</code>,从此以后{<cd7>}非常紧凑和快速,<em>和</em>也是可变的!在</p>
<p><strong>编辑</strong>:你可以用一个列表来完成,就像在公认的答案中那样,但这只是在性能上付出了非常大的相对代价。例如,考虑一下:</p>
^{pr2}$
<p><code>list</code>是一个比这里真正需要的<code>array.array</code>更一般的结构,在这里选择错误的数据结构会慢7倍多。(Python2.7没有那么可怕,“只是”减速了4倍多,但是,想想买一台比现在快4倍的机器要花多少钱,也许你会同意,即使把速度“仅仅”提高4倍而不是7倍,仍然是一个很值得的副产品;-)。在</p>