回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有以下两个列表,我试图以某种特定的方式比较它们:</p>
<pre><code>a = [[18, 299, 559], [18, 323, 564], [18, 353, 564], [18, 391, 570], [18, 448, 570]]
b = [[18, 353, 564], [18, 299, 559], [18, 323, 564], [18, 391, 570], [18, 448, 570]]
</code></pre>
<p>我想要什么</p>
<p>我想按以下顺序比较<code>a</code>和<code>b</code>的每个元素。你知道吗</p>
<p>例如,在上述情况下,当<code>a</code>的第一个元素<code>[18, 299, 559]</code>等于<code>b</code>的<code>[18, 299, 559]</code>之后,循环将中断,并且在新的循环中<code>a</code>的第二个元素<code>[18, 323, 564]</code>将从<code>b</code>的<code>[18, 323, 564]</code>开始进行比较。你知道吗</p>
<p>这里的要点是,新循环不应该从<code>b</code>的第一个元素开始迭代,同时将<code>a</code>的所有元素分别与第0个索引中的所有<code>b</code>进行比较。你知道吗</p>
<p><strong>p.S.</strong>在这个例子中,我并不是要检查两个列表中是否存在元素,也不是要查找任何缺少的元素,这些都可以通过<code>set</code>方法轻松完成。这个逻辑只是为了我自己的知识</p>
<p><strong>我尝试的</p>
<p>所有普通的嵌套循环方法如下:</p>
<pre><code>for i in a:
for j in b: #after break it would always start with first element in b
if i == j:
break
</code></pre>
<p>这里的问题是,每个<code>break</code>新的<code>i</code>都是从<code>b</code>的第一个元素开始比较的,而不是从与<code>a</code>匹配的最后一个元素开始比较的</p>
<p>我脑海中浮现的东西是这样的:</p>
<pre><code>for i in a:
for j in b:
if i == j:
print something
save index of j
break
in the next loop start comparing new i from this saved index of j
</code></pre>
<p>然而,我不能把这个想法变成代码。你知道吗</p>
<p>我知道这听起来很荒谬,但就循环而言,这样的东西能用python实现吗?欢迎所有的意见和提示。你知道吗</p>