我有一個列表的列表如何在python中壓縮列表的列表?
sample = [['A','T','N','N'],['T', 'C', 'C', 'C']],[['A','T','T','N'],['T', 'T', 'C', 'C']].
我試圖壓縮文件,使得只有A/T/G/C在列表和輸出必須是一個列表
[['AT','TCCC'],['ATT','TTCC']]
當我使用此代碼:
tt = ["".join(y for y in x if y in {'A','G','T','C'}) for x in sample]
不過,我只得到輸出:
['ATT','TTCC']
任何建議,我哪裏錯了?
在我實際的代碼,我第一次調換名單:
seq_list = [['TCCGGGGGTATC', 'TCCGTGGGTATC', ...]] # one nested list
numofpops = len(seq_list)
### Tranposing. Moving along the columns only
#column_list = []
for k in range(len(seq_list)):
column_list = [[] for i in range(len(seq_list[k][0]))]
for seq in seq_list[k]:
for i, nuc in enumerate(seq):
column_list[i].append(nuc)
ddd = column_list
print ddd
tt = ["".join(y for y in x if y in {'A','G','T','C'}) for x in ddd]
print tt
我懷疑標籤[zip]你用的不是你的意思。你的'樣本'也不像列表清單。 –
你沒有壓縮(從單獨的序列中配對元素),你在這裏加入和過濾。 –
你的'sample'不是一個有效的Python表達式。你能把它做成一個嗎?當輸入數據無效時,我們很難提供幫助。您的示例代碼和實際輸出顯示只有'sample'表達式的後半部分實際上用作輸入。 –