擅长:python、mysql、java
<p>这是一个正常的循环。没有筑巢。<code>random.sample</code>返回来自<code>allPositions</code>的元素列表,包含<code>synapsesPerSegment</code>许多项。由于for循环中分配给的变量是<code>(rx, ry)</code>形式的元组,这表明<code>allPositions</code>是<code>(rx, ry)</code>形式的元组列表(或集合),每个迭代都分配给<code>rx</code>和<code>ry</code>。如果您有一个元组列表,for循环会在每次迭代中将它们“解压”到这些变量中。例如,如果你有</p>
<p><code>(a, b) = (99, 100)</code></p>
<p>然后,此分配将打开:</p>
<p><code>(c, d) = (a, b)</code></p>
<p>所以<code>c == 99</code>和<code>d == 100</code>。你知道吗</p>
<p>为了回到问题上来,下面是一个包含一些示例数据的演练:</p>
<p>如果我们说:
<code>allPositions = [(1,100), (2, 200), (3, 300), (4, 400)]</code></p>
<p>例如:
<code>synapsesPerSegment = 3</code></p>
<p>那么
<code>random.sample(allPositions, synapsesPerSegment)</code>可能会产生<code>[(3, 300), (1,100), (2, 200)]</code>,因为它随机从<code>allPositions</code>中获取3项。你知道吗</p>
<p>然后迭代:</p>
<ul>
<li>迭代1:<code>rx = 4</code>,<code>ry = 400</code></li>
<li>迭代2:<code>rx = 1</code>,<code>ry = 100</code></li>
<li>迭代3:<code>rx = 2</code>,<code>ry = 200</code></li>
</ul>