回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有一个范围为(1到31)的列表</p>
<p>最后的列表是<code>l = [x, y, z]</code></p>
<p>您可以看到我的代码,使用三个for循环可以很好地工作:</p>
<pre><code>l = range(1, 31)
x = ([j for (i, j) in enumerate(l) if i % 10 == 0])
y = ([j for (i, j) in enumerate(l) if i % 10 == 4])
z = ([j for (i, j) in enumerate(l) if i % 10 == 9])
l1 = [x, y, z]
print (l1)
l = range(1, 31)
x, y, z = ([j for (i, j) in enumerate(l) if i % 10 == 0]), ([j for (i, j) in enumerate(l) if i % 10 == 4]), ([j for (i, j) in enumerate(l) if i % 10 == 9])
l1 = [x, y, z]
print (l1)
</code></pre>
<p>产出是:</p>
<pre><code>[[1, 11, 21], [5, 15, 25], [10, 20, 30]]
[[1, 11, 21], [5, 15, 25], [10, 20, 30]]
</code></pre>
<p>我试图只使用一个<code>for</code>循环来完成它</p>
<pre><code>l = ([(x,y,z) for (i1, x), (i2, y), (i3, z) in enumerate(l) if i1 % 10 == 0 and i2 % 10 == 4 and i3 % 10 == 9])
print l
# l = ([(x,y,z) for ((i, x), (i, y), (i, z)) in enumerate(l) if i % 10 == 0 and i % 10 == 4 and i % 10 == 9])
# print l
# l = ([(j1,j2,j3) for ((i1,i2,i3), (j1,j2,j3)) in enumerate(l) if i1 % 10 == 0 and i2 % 10 == 4 and i3 % 10 == 9])
# print l
</code></pre>
<p>我得到了这个错误:</p>
<pre><code>l = ([(x,y,z) for (i1, x), (i2, y), (i3, z) in enumerate(l) if i1 % 10 == 0 and i2 % 10 == 4 and i3 % 10 == 9])
ValueError: need more than 2 values to unpack
</code></pre>
<p>我不知道我能不能做到</p>
<p>请帮帮我</p>