擅长:python、mysql、java
<p>虽然我不能说出您可能看到的每一种方式,但由于Python的对象语义,一般不会进行复制。在</p>
<pre><code>>>> a = [[1,2.3,'3', object()], [None, [2,3], 4j]]
>>> b = [v for row in a for v in row]
>>> a
[[1, 2.3, '3', <object object at 0x1002af090>], [None, [2, 3], 4j]]
>>> b
[1, 2.3, '3', <object object at 0x1002af090>, None, [2, 3], 4j]
>>> [id(obj) for row in a for obj in row]
[4298185464, 4298195480, 4299558664, 4297781392, 4296523616, 4299692656, 4297773296]
>>> [id(obj) for obj in b]
[4298185464, 4298195480, 4299558664, 4297781392, 4296523616, 4299692656, 4297773296]
</code></pre>
<p>这个<code>v</code>并不意味着“某个新对象等于<code>v</code>”,它只是意味着<code>v</code>,即对象本身。在</p>