回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我似乎在Python中发现了一个奇怪的bug,我不知道它是否已经存在,或者我正在做的是什么错误的事情。请解释一下。你知道吗</p>
<p>我们知道可以用python压缩两个列表,将它们组合成元组。我们可以很容易地再次解析它们。当我多次尝试解析同一个zipped变量时,Python似乎没有这样做,它最终给出了空列表[]。第一次它会这样做,但不止一次它不会。你知道吗</p>
<p>示例:</p>
<pre><code>lis1=[1,2,3,4,5]
lis2=['a','b','a','b','a']
zip_variable=zip(lis1,lis2)
op1=[val2 for (val1,val2) in zip_variable if val1<4]
op2=[val1 for (val1,val2) in zip_variable if val2=='a']
op3=[val1 for (val1,val2) in zip_variable if val2=='b']
print(op1,"\n",op2,"\n",op3)
</code></pre>
<p>输出:</p>
<pre><code>['a','b','a']
[]
[]
</code></pre>
<p>我有一个解决方案,就是为同一个zip文件创建多个变量,如下所示:</p>
<pre><code>lis1=[1,2,3,4,5]
lis2=['a','b','a','b','a']
zip_variable1=zip(lis1,lis2)
zip_variable2=zip(lis1,lis2)
zip_variable3=zip(lis1,lis2)
op1=[val2 for (val1,val2) in zip_variable1 if val1<4]
op2=[val1 for (val1,val2) in zip_variable2 if val2=='a']
op3=[val1 for (val1,val2) in zip_variable3 if val2=='b']
print(op1,"\n",op2,"\n",op3)
</code></pre>
<p>输出:</p>
<pre><code>['a','b','a']
[1,3,5]
[2,4]
</code></pre>
<p>如果我们不在乎记忆,解决方法总是可能的。你知道吗</p>
<p>但主要的问题是为什么会发生这种情况?你知道吗</p>