擅长:python、mysql、java
<p>通常,当您在遍历列表时对其进行变异时。最好的做法是迭代一个副本。下面是一个例子,你会做什么变异一个名单。你知道吗</p>
<pre><code>list = []
list_copy = list[:]
for i in list_copy:
list.remove(i)
return list
</code></pre>
<p>这允许您在每次迭代中保持正确的索引。你知道吗</p>
<p>下面是我试图解释我的意思,并使用for循环来获得预期的结果。希望有帮助。你知道吗</p>
<pre><code>def confront(s1, s2):
if s1 < s2: # condition that tells which element to choose later
return 0
elif s2 < s1:
return 1
else:
return 2
def modi(la,lb):
la_copy = la[:]
lb_copy = lb[:]
for i in range(len(la_copy)):
q = confront(la_copy[i], lb_copy[i])
if q == 0:
lb.remove(lb_copy[i])
elif q == 1:
la.remove(la_copy[i])
return la, lb
la = ['bear', 'tiger', 'wolf', 'whale', 'elephant']
lb = ['swan', 'cat', 'dog', 'duck', 'rabbit']
</code></pre>
<p>通过print()调用它将得到返回的两个列表。你知道吗</p>
<p>注意:这将返回一个元组。如果你想要单独的列表,请通过以下方式调用它。你知道吗</p>
<pre><code>list1, list2 = modi(la,lb)
print(list1)
print(list2)
['bear', 'elephant']
['cat', 'dog', 'duck']
</code></pre>