簡體   English   中英

如何拆分列表

[英]How to split a list up

我有一個稱為lst的列表,如下所示:

lst = ['A', 'C', 'T', 'G', 'A', 'C', 'G', 'C', 'A', 'G']

我想知道的是如何將其分成四個字母字符串,這些字母字符串以第一個,第二個,第三個和第四個字母開頭; 然后移至第二,第三,第四和第五個字母,依此類推,然后將其添加到新列表中,以與主列表進行比較。

謝謝

要獲取第一個子列表,請使用lst[0:4] 使用python的join函數將其合並為單個字符串。 使用for循環獲取所有子列表。

sequences = []
sequence_size = 4
lst = ['A', 'C', 'T', 'G', 'A', 'C', 'G', 'C', 'A', 'G']

for i in range(len(lst) - sequence_size + 1):
    sequence = ''.join(lst[i : i + sequence_size])
    sequences.append(sequence)

print(sequences)

所有4克(無填充):

# window size:
ws = 4
lst2 = [
    ''.join(lst[i:i+ws])
    for i in range(0, len(lst))
    if len(lst[i:i+ws]) == 4
]

不重疊的4克:

lst3 = [
    ''.join(lst[i:i+ws])
    for i in range(0, len(lst), ws)
    if len(lst[i:i+ws]) == 4
]

采用:

lst = ['A', 'C', 'T', 'G', 'A', 'C', 'G', 'C', 'A', 'G']
i=0
New_list=[]
while i<(len(lst)-3):
    New_list.append(lst[i]+lst[i+1]+lst[i+2]+lst[i+3])
    i+=1
print(New_list)

輸出:

['ACTG', 'CTGA', 'TGAC', 'GACG', 'ACGC', 'CGCA', 'GCAG']

我認為其他答案可以解決您的問題,但是如果您正在尋找一種實現此目標的Python方法,則可以使用List comprehension 盡管有時會降低代碼的可讀性,但強烈建議使用此代碼來簡化代碼。 也很短。

lst = ['A', 'C', 'T', 'G', 'A', 'C', 'G', 'C', 'A', 'G']
result = [''.join(lst[i:i+4]) for i in range(len(lst)-3)]
print(result)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM