⑴ 八、 python中的数据类型——字符串
字符串是由数字、字母、下划线组成的一串字符,比如 “hello, world!” ,这就是一个字符串。
在python中,字符串要用引号括起来,单号号或者双引号都可以。像是 'abc' , "xyz" 都是字符串。
在python中字符串用单引号或者双引号括起来,例如 'a' , "b" ,a和b都是字符串类型,可以使用 type() 函数查看
python中还可以用三个引号表示字符串, ''' 或者 """ 都可以,它主要是用来表示跨行的字符串,例如:
执行 print(a,type(a)) ,可以看到结果
在"荒野猎人"和"2015-12-16"后面,都有'\n',只不过'\n'在shell中被打印出来了,所以看不到。
'\n'代表换行,因为有'\n'的存在,所以"2015-12-16","莱昂纳多·迪卡普里奥 / 汤姆·哈迪"和"8.2"才从下一行开始打印。
为什么有'\n'? 因为在定义a的时候,输入完“荒野猎人”后按的回车,回车在计算机语言中即为'\n'。
在两个三引号之间,单引号和双引号都可以使用。同理,在单引号之间,可以用双引号,在双引号间可以用单引号。例如:
在表示一个单引号的时候,可以使用两个双引号,也就是 "'" ,也就是上面的例子a,另一种方法是用 '\'' ,反斜杠单引号等价于一个单引号,即:
两个反斜杠\\代表一个反斜杠,因为你要打印一个反斜杠,但是反斜杠是转义的意思,因此有一个特殊的转义符 \\\\ ,它代表着一个反斜杠。
prefix还可以是元组,S.startswith(('a','b')),当S以'a'或者'b'开头时返回True。
与find相对的,还有个rfind方法。
S.rfind(sub) -> int
它与find的区别是,find是从字符串左侧开始查找,而rfind是从右侧开始查找。两者都是查找到第一个sub后就停止查找,立刻返回其索引值,没找到返回-1。
关于更多字符串的信息,可以使用 help(str) 查看。
⑵ python中如何取出字符串中最后一个特定字符后的字符串
用这个可以:
str1='gene_id"625|624";transcript_id"10_1";cluster_id"10"'
foriteminm:
ifnotitem.isdigit():
print(item+'',end='')可以输出
625|624 10_1。
⑶ python字符串操作集合
把字符串变量和字面值连接起来,组成新的字符串。推荐3个方法:
对字符串进行单个字符索引时,无论是从前往后索引,还是从后往前索引,索引序号一定要在范围内,否则出错。
对字符串进行切片截取时,采用 str[start:end] 的方式。start,end可以正,可以负。且如果start标识的位置大于等于end标识的位置,则截取字符串为空。start,end超出字符串的极限位置,那么就用最值。start默认为0,end默认为字符串长度。
一般的基于文本和行字符串处理,使用sed,awk,grep等工具就可以了,这些命令行工具用起来更便捷,但是也没有python的这些函数强大。比如没法实现非贪婪模式匹配。如下:
把连续的数字提取出来,其他的字符抛弃
python处理字符串,比linux命令要复杂一些,功能也更强大一些。对于简单的处理任务,linux命令已经足够,python为的是一些更复杂的处理操作。如果两者都会,岂不是更好?
⑷ Python的字符串切片及常用方法
获取Python字符串中的某字符可以使用索引:
截取字符串中的一段字符串可以使用切片,切片在方括号中使用冒号:来分隔需要截取的首尾字符串的索引,方式是包括开头,不包括结尾
当尾索引没有给出时,默认截取到字符串的末尾
当头索引没有给出的时候默认从字符串开头开始截取
当尾索引和头索引都没有给出的时候,默认返回整个字符串,不过这只是一个浅拷贝
当尾索引大于总的字符串长度时,默认只截取到字符串末尾,很明显使用这种方法来截取一段到字符串末尾的子字符串是非常不明智的,应该是不给出尾索引才是最佳实践
当头索引为负数时,则是指从字符串的尾部开始计数,最末尾的字符记为-1,以此类推,因此此时应该注意尾索引的值,尾索引同样可以为负数,如果尾索引的值指明的字符串位置小于或等于头索引,此时返回的就是空字符串
切片是Python中截取字符串最强大的功能。
以下列举部分Python字符串常用的方法:
⑸ python深拷贝和浅拷贝的区别
浅拷贝是对一个对象父级(外层)的拷贝,并不会拷贝子级(内部),而深拷贝对一个对象是所有层次的拷贝(递归),内部和外部都会被拷贝过来。
使用浅拷贝的时候,分为两种情况。
第一种,如果最外层的数据类型是可变的,比如说列表,字典等,浅拷贝会开启新的地址空间去存放。
⑹ python中如何把一行字符串复制为两行
加上换行吗
string=string+“\n”+string+"\n"
这样?
⑺ Python字符串
字符串 :在python中是作为序列存在的,序列中的元素具有从左到右的顺序,并根据他们的相对位置进行读取和储存。严格意义来说,字符串是一系列单个字符组成的序列,其他类型的序列还包括列表和元组。在一串字符两侧加上双引号或者单引号即可创建字符串。
注意 :如果字符串中需要出现双引号或者单引号,则有两种方法。
1)使用转义字符()进行转义。
2)将双引号和单引号配合使用,即若向想打印单引号,可以使用双引号表示字符串,在字符串中只用一个单引号。反之亦然。
在一个字符串前面加上r;则会自动为字符串中的反斜杠转义,使其只代表一个反斜杠。但是注意,原始字符串最后不能有反斜杠,否则会发生语法错误。如果非要在原始字符串最后加上,则可以写为。
运行结果为:
有时我们需要创建一个跨行的字符串,则可以使用三引号来创建。
运行结果为
1)可以通过len()函数得到序列的长度。
运行结果为:
2)可以通过索引操作得到序列的各个元素值。python中序列的索引是从0开始依次向后推移。
运行结果为:
3)python还支持反向索引,是从最后一个向前推移的。-1是指序列中的最后一个元素值,-len(str)是指该序列的第一个元素值。
运行结果为:
4)序列还支持一种 分片(slice) 的操作,这是一种能够一步提取整个分片的方法。
分片可以看作是字符串中一部提取出其中一部分的方法。其一般形式为:X[I:J],表示从X序列中取出第I个元素到不包含第J个元素的部分,结果为返回一个新的对象。
运行结果为:
在一个分片(slice)中,左边界默认为0。同时应注意负偏移量在分片中的边界,也应为左侧数字比右侧数字小。拷贝全部字符串的用法为str[:]。
运行结果为:
5)作为一个序列,字符串还支持用“+”来合并字符串。
运行结果为:
6) 不可变性 ,python中字符串具有不可变性,在创建一个字符串之后不可以通过对其某一位置进行赋值而改变该字符串,但可以通过创建一个新的字符串并以同一个变量名命名。
运行结果为:
7)除了一般的序列操作,字符串还有一些其特有的操作方法。
如find()方法,可以用于查找一个子字符串,可以返回该子字符串的索引值。但如果存在多个符合的子字符串,只会返回第一个索引值。如果不存在该子字符串,则返回-1。replace(S1,S2)方法会将字符串中的S1替换为S2。
运行结果如下:
关于字符串,python还有许多内置函数,可以通过调用dir()函数来查看。
⑻ python字符串操作
字符串操作在各个计算机语言中都是比较常见的操作,下面我们对python的字符串操作做下简单介绍。
一、索引操作
字符串是由一些连续的字符组成,支持索引操作,索引位置从0开始,比如以下代码会输出’P‘字符:
二、截取子串
字符串也可以像列表那样给定起始与终止索引生成一个新的子串,比如以下代码会输出“Py”:
三、连接操作
多个字符串相加会生成一个新串,比如以下代码输出”Love Python“:
四、大小写转换
调用字符串的upper与lower方法会分别生成新的大写和小写的字符串,比如以下代码第一个输出:”I LOVE PYTHON“,第二个输出:”i love python“:
五、前后缀判断
调用字符串的startswith与endswith方法可以判断字符串是否以某个子串开关或者结尾,比如以下会分别打印出 ” python startswith py “ 和 ” python endswith on “:
六、查找与替换子串
调用find方法可以判断是否包含某个子串,比如以下代码会输出" python contains th" 和 " python doesn't contain he":
调用replace方法可以对字符串进行替换,比如要把"hello world"中的”hello“替换为”world“,以下代码会输出:”world world“
七、分隔字符串
如果我们要把一句话按空格分隔为一个一个的单词要怎么做呢,这时调用split方法即可,比如以下代码会把”hello world ni hao“转换为["hello","world","ni","hao"]:
八、清除前后字符
如果一个字符串前后有空白字符,我们需要去掉,你可以调用字符串的替换方法来做,但更简单的做法是调用strip方法,比如以下代码就会去掉两端的空白字符输出“hello python”:
九、大小写对换
如果我们需要把字符串中的小写转换为大写,大写转换为小写,那要怎么做呢,很简单,调用下swapcase就可以了,如以下代码会输出“ heLLO pYThON ”:
十、字符分类判断
有很多方法用来判断一个字符串是否属于某个分类,比如 isdigit判断是否是数字,isalpha判断是否是字母,isalnum判断是否是字母数字等,如下代码: