我有一个包含3个序列的列表
seq_list = ['ACGT', 'ATTT', 'ACCC']
我想从列表中提取列并使用python中的嵌套循环将其存储在另一个列表中
最终输出应为
seq_list = ['AAA', 'CTC', 'GTC','TTC']
我编写了以下代码,但它没有产生所需的输出。
column = []
for i in range(len(seq_list[0])): #Length of the row
for j in range(len(seq_list)): #Length of the column
column.append(seq_list[j][i])
print column
答案 0 :(得分:2)
通过你的方法我做了一点修改,对于每个内部public class ETCollapsableTableItem
循环,我创建了一个for
,然后在内部string
循环结束后,我将其附加到for
:< / p>
column
<强>输出:强>
seq_list = ['ACGT', 'ATTT', 'ACCC']
column = []
for i in range(len(seq_list[0])): #Length of the row
string = ""
for j in range(len(seq_list)): #Length of the column
string += seq_list[j][i]
column.append(string)
print column
虽然您可以使用@alecxe代码(使用['AAA', 'CTC', 'GTC', 'TTC']
和zip
)。我认为这很酷,也更加炽热。
答案 1 :(得分:1)
或者,您可以"zip" the sequence和join:
>>> [''.join(item) for item in zip(*seq_list)]
['AAA', 'CTC', 'GTC', 'TTC']
答案 2 :(得分:-2)
new_seq_list = reduce(
lambda new_seq_list,item:
new_seq_list + [''.join([item.pop(0) for item in new_seq_list[0]])]
, range(max([len(item) for item in seq_list])) ,
[[list(item) for item in seq_list]]
)[1:]