第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何將字符串分割成大小相等的部分?

如何將字符串分割成大小相等的部分?

SMILET 2023-08-08 10:49:09
我有一個(gè)包含核苷酸序列的字符串。該字符串的長(zhǎng)度為 1191 個(gè)核苷酸。如何以每行只有 100 個(gè)核苷酸的格式打印序列?現(xiàn)在我已經(jīng)對(duì)其進(jìn)行了硬編碼,但我希望它適用于任何核苷酸串。這是我現(xiàn)在的代碼def printinfasta(SeqName, Sequence, SeqDescription):    print(SeqName + " " + SeqDescription)    #how do I make sure to only have 100 nucleotides per line?    print(Sequence[0:100])    print(Sequence[100:200])    print(Sequence[200:300])    print(Sequence[400:500])    print(Sequence[500:600])    print(Sequence[600:700])    print(Sequence[700:800])    print(Sequence[800:900])    print(Sequence[900:1000])    print(Sequence[1000:1100])    print(Sequence[1100:1191])printinfasta(SeqName, Sequence, SeqDescription)Sequence = "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCCCTAAACCCTAAACCCTAAACCCTAAACCCTAAACCCTAAACCCTAAACCCTAAATCCATAAATCCCTAAAACCATAATCCTAAATCCCTTAATTCCTAAATCCCTAATACTTAGACCCTAATCTTTAGTTCCTAGACCCTAATCTTTAGTTCCTAGACCCTAAATCCATAATCCTTAATTCCTAAATTCCTAAATCCCTAATACTAAATCTCTAAATCCCTAGCAATTTTCAAGTTTTGCTTGATTGTTGTAGGATGGTCCTTTCTCTTGTTTCTTCTCTGTGTTGTTGAGATTAGTTTGTTTAGGTTTGATAGCGTTGATTTTGGCCTGCGTTTGGTGACTCATATGGTTTGATTGGAGTTTGTTTCTGGGTTTTATGGTTTTGGTTGAAGCGACATTTTTTTGTGGAATATGGTTTTTGCAAAATATTTTGTTCCGGATGAGTAATATCTACGGTGCTGCTGTGAGAATTATGCTATTGTTTT"
查看完整描述

6 回答

?
jeck貓

TA貢獻(xiàn)1909條經(jīng)驗(yàn) 獲得超7個(gè)贊

您可以使用textwrap.wrap將長(zhǎng)字符串拆分為字符串列表


import textwrap


seq = "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCCCTAAACCCTAAACCCTAAACCCTAAACCCTAAACCCTAAACCCTAAACCCTAAATCCATAAATCCCTAAAACCATAATCCTAAATCCCTTAATTCCTAAATCCCTAATACTTAGACCCTAATCTTTAGTTCCTAGACCCTAATCTTTAGTTCCTAGACCCTAAATCCATAATCCTTAATTCCTAAATTCCTAAATCCCTAATACTAAATCTCTAAATCCCTAGCAATTTTCAAGTTTTGCTTGATTGTTGTAGGATGGTCCTTTCTCTTGTTTCTTCTCTGTGTTGTTGAGATTAGTTTGTTTAGGTTTGATAGCGTTGATTTTGGCCTGCGTTTGGTGACTCATATGGTTTGATTGGAGTTTGTTTCTGGGTTTTATGGTTTTGGTTGAAGCGACATTTTTTTGTGGAATATGGTTTTTGCAAAATATTTTGTTCCGGATGAGTAATATCTACGGTGCTGCTGTGAGAATTATGCTATTGTTTT"

print('\n'.join(textwrap.wrap(seq, width=100)))


查看完整回答
反對(duì) 回復(fù) 2023-08-08
?
慕雪6442864

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊

您可以使用基于的輔助函數(shù)itertools.zip_longest。輔助函數(shù)被設(shè)計(jì)為(也)處理序列不是相等部分大小的精確倍數(shù)的情況(最后一組的元素比之前的組少)。

from itertools import zip_longest



def grouper(n, iterable):

? ? """ s -> (s0,s1,...sn-1), (sn,sn+1,...s2n-1), (s2n,s2n+1,...s3n-1), ... """

? ? FILLER = object()? # Value that couldn't be in data.

? ? for result in zip_longest(*[iter(iterable)]*n, fillvalue=FILLER):

? ? ? ? yield ''.join(v for v in result if v is not FILLER)



def printinfasta(SeqName, Sequence, SeqDescription):

? ? print(SeqName + " " + SeqDescription)

? ? for group in grouper(100, Sequence):

? ? ? ? print(group)


Sequence = "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCCCTAAACCCTAAACCCTAAACCCTAAACCCTAAACCCTAAACCCTAAACCCTAAATCCATAAATCCCTAAAACCATAATCCTAAATCCCTTAATTCCTAAATCCCTAATACTTAGACCCTAATCTTTAGTTCCTAGACCCTAATCTTTAGTTCCTAGACCCTAAATCCATAATCCTTAATTCCTAAATTCCTAAATCCCTAATACTAAATCTCTAAATCCCTAGCAATTTTCAAGTTTTGCTTGATTGTTGTAGGATGGTCCTTTCTCTTGTTTCTTCTCTGTGTTGTTGAGATTAGTTTGTTTAGGTTTGATAGCGTTGATTTTGGCCTGCGTTTGGTGACTCATATGGTTTGATTGGAGTTTGTTTCTGGGTTTTATGGTTTTGGTTGAAGCGACATTTTTTTGTGGAATATGGTTTTTGCAAAATATTTTGTTCCGGATGAGTAATATCTACGGTGCTGCTGTGAGAATTATGCTATTGTTTT"


printinfasta('Name', Sequence, 'Description')

示例輸出:


Name Description

NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN

CCCTAAACCCTAAACCCTAAACCCTAAACCCTAAACCCTAAACCCTAAACCCTAAATCCATAAATCCCTAAAACCATAATCCTAAATCCCTTAATTCCTA

AATCCCTAATACTTAGACCCTAATCTTTAGTTCCTAGACCCTAATCTTTAGTTCCTAGACCCTAAATCCATAATCCTTAATTCCTAAATTCCTAAATCCC

TAATACTAAATCTCTAAATCCCTAGCAATTTTCAAGTTTTGCTTGATTGTTGTAGGATGGTCCTTTCTCTTGTTTCTTCTCTGTGTTGTTGAGATTAGTT

TGTTTAGGTTTGATAGCGTTGATTTTGGCCTGCGTTTGGTGACTCATATGGTTTGATTGGAGTTTGTTTCTGGGTTTTATGGTTTTGGTTGAAGCGACAT

TTTTTTGTGGAATATGGTTTTTGCAAAATATTTTGTTCCGGATGAGTAATATCTACGGTGCTGCTGTGAGAATTATGCTATTGTTTT


查看完整回答
反對(duì) 回復(fù) 2023-08-08
?
海綿寶寶撒

TA貢獻(xiàn)1809條經(jīng)驗(yàn) 獲得超8個(gè)贊

我假設(shè)您的序列采用 FASTA 格式。如果是這種情況,您可以使用提供 FASTA 序列包裝實(shí)用程序的許多生物信息學(xué)軟件包中的任何一個(gè)。例如,您可以使用FASTX-Toolkit.?使用命令行實(shí)用程序包裝 FASTA 序列FASTA Formatter,例如每行最多 100 個(gè)核苷酸:

fasta_formatter?-i?INFILE?-o?OUTFILE?-w?100

您可以FASTX-Toolkit使用安裝包conda,例如:
conda install fastx_toolkit

conda create -n fastx_toolkit fastx_toolkit

請(qǐng)注意,如果您最終從頭開(kāi)始編寫(xiě)(簡(jiǎn)單)代碼來(lái)包裝 FASTA 序列,請(qǐng)記住不應(yīng)包裝標(biāo)題行(以 開(kāi)頭的行>) 。僅包裹序列行。

查看完整回答
反對(duì) 回復(fù) 2023-08-08
?
aluckdog

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超7個(gè)贊

你可以使用itertools.zip_longest一些iter魔法來(lái)將其寫(xiě)成一行:


from itertools import zip_longest


sequence = "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCCCTAAACCCTAAACCCTAAACCCTAAACCCTAAACCCTAAACCCTAAACCCTAAATCCATAAATCCCTAAAACCATAATCCTAAATCCCTTAATTCCTAAATCCCTAATACTTAGACCCTAATCTTTAGTTCCTAGACCCTAATCTTTAGTTCCTAGACCCTAAATCCATAATCCTTAATTCCTAAATTCCTAAATCCCTAATACTAAATCTCTAAATCCCTAGCAATTTTCAAGTTTTGCTTGATTGTTGTAGGATGGTCCTTTCTCTTGTTTCTTCTCTGTGTTGTTGAGATTAGTTTGTTTAGGTTTGATAGCGTTGATTTTGGCCTGCGTTTGGTGACTCATATGGTTTGATTGGAGTTTGTTTCTGGGTTTTATGGTTTTGGTTGAAGCGACATTTTTTTGTGGAATATGGTTTTTGCAAAATATTTTGTTCCGGATGAGTAATATCTACGGTGCTGCTGTGAGAATTATGCTATTGTTTT" 


output = [''.join(filter(None, s)) for s in zip_longest(*([iter(sequence)]*100))]

或者:


for s in zip_longest(*([iter(sequence)]*100)):

    print(''.join(filter(None, s)))


查看完整回答
反對(duì) 回復(fù) 2023-08-08
?
嗶嗶one

TA貢獻(xiàn)1854條經(jīng)驗(yàn) 獲得超8個(gè)贊

一個(gè)可能的解決方案是使用re模塊。


import re


def splitstring(strg, leng):

    chunks = re.findall('.{1,%d}' % leng, strg)

    for i in chunks:

        print(i)



splitstring(strg = seq, leng = 100))


查看完整回答
反對(duì) 回復(fù) 2023-08-08
?
鴻蒙傳說(shuō)

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊

cytoolz(可使用安裝)提供了一個(gè)可以在此處使用的pip install cytoolz函數(shù):partition_all

#!/usr/bin/env python3

from cytoolz import partition_all


def printinfasta(name, seq, descr):

? ? header = f">{name} {descr}"

? ? print(header)

? ? print(*map("".join, partition_all(100, seq)), sep="\n")



printinfasta("test", 468 * "ACGTGA", "this is a test")

partition_all(100, seq))生成 100 個(gè)字母的元組,每個(gè)字母取自seq,最后一個(gè)較短的字母是字母數(shù)不是 100 的倍數(shù)。


用于map("".join, ...)將每個(gè)此類(lèi)元組中的字母分組為單個(gè)字符串。


前面*的map使其結(jié)果被視為 的單獨(dú)參數(shù)print。


查看完整回答
反對(duì) 回復(fù) 2023-08-08
  • 6 回答
  • 0 關(guān)注
  • 220 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)