美文网首页
【Python生信编程笔记】三、数据类型(一)字符串

【Python生信编程笔记】三、数据类型(一)字符串

作者: 生信开荒牛 | 来源:发表于2022-07-18 12:02 被阅读0次
  • 字符串由一个单引号(’),双引号(“),单三重引号(”’)或双三重引号(“””)分隔,可以在双引号分隔的字符串中插入一个单引号,反之亦然。
’Here we have "double quotes" inside single quotes’
  • 如果一个字符串以一种类型引号开始,就必须用同一类型的引号结束。

  • 三重引号的字符串,我们可以用它们来表示多行字符串。

"""Hi! I’m a
multiline
string"""

字符串操作

将一个字符串从大写字母转换为小写字母:

In [1]: signal_peptide = 'MASKATLLLAFTLLFATCIA'

In [2]: signal_peptide.lower()
Out[2]: 'maskatlllaftllfatcia'

In [3]: signal_peptide = signal_peptide.lower()

In [4]: signal_peptide
Out[4]: 'maskatlllaftllfatcia'

replace(old,new[,count]): 替代字符,参数count只有最早出现count的old被替换。

In [5]: dna_seq = 'GCTAGTAATGTG'

In [6]: m_rna_seq = dna_seq.replace('T','U')

In [7]: m_rna_seq
Out[7]: 'GCUAGUAAUGUG'
    
In [10]: m_rna_seq = dna_seq.replace('T','U',2)     #U只替换2次T

In [11]: m_rna_seq
Out[11]: 'GCUAGUAATGTG'

count(sub[, start[, end]]):计算次数

计算序列的CG含量

In [11]: m_rna_seq
Out[11]: 'GCUAGUAATGTG'

In [12]: dna_seq
Out[12]: 'GCTAGTAATGTG'

In [13]: c = dna_seq.count('C')

In [14]: g = dna_seq.count('G')

In [15]: (c+g)/len(dna_seq)*100
Out[15]: 41.66666666666667

find(sub[,start[,end]]):返回字符串的起始位置,如果没有找到则返回-1

In [21]: m_rna_seq
Out[21]: 'GCUAGUAAUGUG'

In [22]: m_rna_seq.find('AUG')
Out[22]: 7

In [23]: m_rna_seq.find('GGG')
Out[23]: -1

index(sub[,start[,end]]):与find方法类似,只是index()没找到字符串会报错

In [24]: m_rna_seq.index('GGG')
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
Input In [24], in <cell line: 1>()
----> 1 m_rna_seq.index('GGG')

ValueError: substring not found

In [25]: m_rna_seq.index('AUG')
Out[25]: 7

split([sep [,maxsplit]]):将一个字符串的“单词”分隔并返回一个列表

默认空格分隔

In [26]: 'This string has words separated by spaces'.split()    
Out[26]: ['This', 'string', 'has', 'words', 'separated', 'by', 'spaces']

如果不是空格分隔,需指定分隔符

In [27]: "Alex Doe,5555-2333,nobody@example.com".split(",")
Out[27]: ['Alex Doe', '5555-2333', 'nobody@example.com']

BLAST分析的结果(-m 8参数)是制表符分隔的输出文件,可以通过split(“\t”)解析。

join(seq):将字符串连接成一个字符串

In [28]: ''.join('ATCG')
Out[28]: 'ATCG'

In [30]: ';'.join(['Alex Doe', '5555-2333', 'nobody@example.com'])
Out[30]: 'Alex Doe;5555-2333;nobody@example.com'    

可在终端输入help(str)来获取完整的字符串方法描述。

相关文章

网友评论

      本文标题:【Python生信编程笔记】三、数据类型(一)字符串

      本文链接:https://www.haomeiwen.com/subject/bparirtx.html