擅长:python、mysql、java
<p>首先,正如其他人所说,元组是不可变的。不能就地更改元组,但可以通过订阅或理解元组来创建新元组。你知道吗</p>
<p>如果您要对元组中的列表执行操作,请小心,因为Python中的事情在这里会变得很奇怪。你可以用流行音乐把事情搞清楚:</p>
<pre><code>In [11]: listpack_list = (["data", "data", "data"], ["test", "test", "test"], ["sof", "sof", "sof"])
In [12]: listpack_list[0].pop()
Out[12]: 'data'
In [13]: listpack_list
Out[13]: (['data', 'data'], ['test', 'test', 'test'], ['sof', 'sof', 'sof'])
</code></pre>
<p>其他操作似乎失败但仍然有效(!)地址:</p>
<pre><code>In [13]: listpack_list
Out[13]: (['data', 'data'], ['test', 'test', 'test'], ['sof', 'sof', 'sof'])
In [14]: listpack_list[1] += ['test']
-
TypeError Traceback (most recent call last)
<ipython-input-14-68991a0001f4> in <module>()
> 1 listpack_list[1] += ['test']
TypeError: 'tuple' object does not support item assignment
In [15]: listpack_list
Out[15]: (['data', 'data'], ['test', 'test', 'test', 'test'], ['sof', 'sof', 'sof'])
</code></pre>
<p>因此,因为不可变元组包含可变列表,所以可以更改元组中的内容,但这绝对不是最佳方法。如果您可以控制实现,只需在初始步骤创建一个列表列表,而不是元组。如果你不这样做,我建议你用一个理解来得到一个列表,然后用它。你知道吗</p>