<pre><code>a,b,c = my_list
</code></pre>
<p>只要列表中的元素数等于要解压的变量数,这就可以工作,它实际上可以处理任何iterable、tuple、list、set等</p>
<p>如果列表较长,您可以随时访问前3个元素,如果这是您想要的</p>
<pre><code>a = my_list[0]
b = my_list[1]
c = my_list[2]
</code></pre>
<p>或者在一条线上</p>
<pre><code>a, b, c = my_list[0], my_list[1], my_list[2]
</code></pre>
<p>更好的是,使用slice表示法,您可以得到包含前3个元素的右边子列表</p>
<pre><code>a, b, c = my_list[:3]
</code></pre>
<p>只要列表的大小至少是3,或者变量的数量是你想要的,这些都可以工作</p>
<p>您还可以使用扩展的解包表示法</p>
<pre><code>a, b, c, *the_rest = my_list
</code></pre>
<p>剩下的将是一个列表,列表中除了前3个元素以外的所有其他元素,同样,列表的大小必须是3或更多</p>
<p>这几乎涵盖了提取一定数量的项目的所有方法</p>
<p>现在取决于你将要用它们做什么,你可能会用一个常规的循环更好</p>
<pre><code>for item in my_list:
#do something with the current item, like printing it
print(item)
</code></pre>
<p>在每个迭代中,item将获取列表中一个元素的值,以便您在一次执行一个item时执行所需的操作</p>
<hr/>
<p>如果您想要的是在每次迭代中同时获取3个项目,那么有几种方法可以做到这一点</p>
<p>比如说</p>
<pre><code>for i in range(3,len(my_list),3)
a,b,c = my_list[i-3:i]
print(a,b,c)
</code></pre>
<p>有更多有趣的构造像</p>
<pre><code>it = [iter(my_list)]*3
for a,b,c in zip(*it):
print(a,b,c)
</code></pre>
<p>其他的则与itertools模块有关。你知道吗</p>
<p>但是现在你说了一些有趣的事情,每个术语都被分配给一个变量,这是错误的方法,你不希望一个未知数量的变量很快变得混乱,你要处理列表,如果你想处理每个元素,有很多方法,比如列表理解你知道吗</p>
<pre><code>my_new_list = [ some_fun(x) for x in my_list ]
</code></pre>
<p>还是老办法</p>
<pre><code>my_new_list = []
for x in my_list:
my_new_list.append( some_fun(x) )
</code></pre>
<p>或者,如果您需要同时处理多个项目,请将其与上述部分结合使用</p>