我正在寻找一个python代码,它将识别氨基酸序列的长度(以字符串形式输入),以及字符串的前20%,字符串的最后20%,以及中间60%的字符串。
我知道我可以使用切片,但你必须知道要提取的字符串序列的确切位置(例如,[0:20] - >将字符串从位置1返回到20)。有没有人对如何做到这一点有任何想法?谢谢!
答案 0 :(得分:3)
你仍然可以使用切片。先找出字符串的长度。
length = len(your_string)
first = your_string[:int(length*0.2)]
middle = your_string[int(length*0.2):int(length*0.8)]
last = your_string[int(length*0.8):]
这是python解释器输出:
>>> your_string = '1234567890'
>>> length = len(your_string)
>>>
>>> first = your_string[:int(length*0.2)]
>>> middle = your_string[int(length*0.2):int(length*0.8)]
>>> last = your_string[int(length*0.8):]
>>>
>>> print (first, middle, last)
('12', '345678', '90')
请注意,在所有情况下,前20%和后20%的长度可能不同。例如,大小为11的输入字符串将包含前两个字符的两个字符,以及最后20%的三个字符。
答案 1 :(得分:0)
您可以在函数中定义将字符串作为参数
的所有内容你可以这样做
def amino(string):
L=len(string)
twenty = (20 * L) / 100
sixty = (60 * L) / 100
print(string[:int(twenty)])
print(string[int(twenty):int(twenty+sixty)])
print(string[int(twenty+sixty):])
答案 2 :(得分:0)
你可以这样做:
def amino_acid_sequence(string):
first = int(len(string) * 0.2)
middle = int(len(string) * 0.6)
return (string[:first], string[first:first + middle], string[first + middle:])
和测试结果:
>>> amino_acid_sequence('1234567890')
('12', '345678', '90')
>>> amino_acid_sequence('1234567890a')
('12', '345678', '90a')
>>> amino_acid_sequence('1234567890ab')
('12', '3456789', '0ab')
希望这可以帮到你。