擅长:python、mysql、java
<p>在这里看不到你的数据很难判断,但我猜是这样的:</p>
<pre><code>line = ['chr', 3505353, 3505472]
base = 3505390
others = (['3505390', '-', '3.32682966730502e-08', '1.69470366570212e-07', '-35.4239256678281', '1', '156190', 'NM_001011874', '-'],)
</code></pre>
<p>如果是这样,<code>line + [base, others]</code>将是:</p>
<pre><code>['chr', 3505353, 3505472, 3505390, (['3505390', '-', '3.32682966730502e-08', '1.69470366570212e-07', '-35.4239256678281', '1', '156190', 'NM_001011874', '-'],)]
</code></pre>
<p>换句话说,五列,最后一列是一个元组,其中包含一个列表,其中包含一组值。你知道吗</p>
<p>我不知道您想要什么输出,但是我假设元组中的每个列表都意味着一个新行,而列表只是一堆额外的列。在这种情况下:</p>
<pre><code>if base >= start and base <= end:
count_in += 1
for other in others:
common.writerow(line + [base] + others)
</code></pre>
<p>这会给你一行看起来像:</p>
<pre><code>chr1 3505353 3505472 3505390 3505390 - 3.32682966730502e-08 1.69470366570212e-07 -35.4239256678281 1 156190 NM_001011874 -
</code></pre>
<p>无论如何,获取所需输出的唯一方法是获取列值列表。而且调试一个正确的列表要容易得多。试着把这些部分打印出来,然后计算出你要做什么才能把这些部分放在一个单一的平面列表中。一旦你做到了,你就完了。你知道吗</p>