擅长:python、mysql、java
<p>您可以将您的6个列表理解合并为两个:</p>
<pre><code>la1, la2, la3= zip(*((x[0], x[2], float(x[3])) for x in ls if 'A' in x[4]))
lb1, lb2, lb3= zip(*((x[0], x[2], float(x[3])) for x in ls if 'B' in x[4]))
</code></pre>
<p>首先创建一个三元组列表<code>(x[0], x[2], float(x[3]))</code>,然后使用旧的<code>zip(*values)</code>技巧将其转置并解压到<code>la1, la2, la3</code>变量中。你知道吗</p>
<hr/>
<p>比这更有效的是一个简单的循环:</p>
<pre><code>la1, la2, la3 = [], [], []
lb1, lb2, lb3 = [], [], []
for x in ls:
if 'A' in x[4]:
la1.append(x[0])
la2.append(x[2])
la3.append(float(x[3]))
if 'B' in x[4]:
lb1.append(x[0])
lb2.append(x[2])
lb3.append(float(x[3]))
</code></pre>