首页 > 技术文章 > pyrhon3中字符串方法

gaojr 2019-12-27 19:27 原文

1、字符串的驻留机制

字符串驻留:仅保存一份相同且不可变字符串的方法,不同的值被存放在字符串驻留池中。

python支持字符串主流机制,对于符合标识符规则的字符串(仅包含下划线(_)、字母和数字)会启用字符串驻留机制。

>>> a="aa_3"
>>> b="aa_3"
>>> a is b
True
>>> a == b
True
>>> c = "dd#"
>>> d = "dd#"
>>> c is d
False
>>> c == d
True
>>> id(c)
2864146157496
>>> id(d)
2864146256648

 

2、字符串的编码

python3直接支持Unicode编码,可以表示世界上任何书面语言的字符。python3的字符默认是16位Unicode编码,ASCII码是Unicode编码的子集。

  使用内置函数ord()可以把字符转换成对应的Unicode编码;

  使用内置函数chr()可以把十进制数字转换成对应的字符。

 

3、字符串搜索

字符串str的正向长度范围:0 到 len(str) - 1

字符串str的反向长度范围:-1 到 -len(str),-1代表的最后一个元素的位置,-len(str)代表的是第一个元素的位置

 

4、可变字符串

在python中,字符串属于不可变对象,不支持原地修改,如果需要修改其中的值,只能创建新的字符串对象。但是经常我们需要原地修改字符串,可以使用

io.StringIO对象或者array模块。

import io

s = "hello, sxt"

sio = io.StringIO(s)

sio.getvalue() 

结果: "hello, sxt"

sio.seek(7)

结果:7

sio.write("g")

sio.getvalue()

结果: "hello, gxt"

 

5、字符串常用方法

(1)常用方法

  str.startswith("指定字符串"):判断是否以指定字符串开头,返回结果为布尔类型  

  str.endswith("指定字符串"):判断是否以指定字符串结尾,返回结果为布尔类型

  str.find("指定字符串"):返回第一次出现指定字符串的位置,若指定字符串不存在,返回-1

  str.rfind("指定字符串"):返回最后一次出现指定字符串的位置,若指定字符串不存在,返回-1

  str.count("指定字符串"):返回指定字符串出现的次数

  str.isalnum():判断字符串所有字符全是字母或数字

  str.replace("原字符串","新字符串"):将原字符串替换为新字符串,该方法执行完成后会返回一个新的字符串,并不会修改原有字符串的内容。

(2)去除首尾信息

  通过strip()去除字符串首尾指定信息,lstrip()去除字符串左边指定信息,rstrip()去除字符串右边指定信息。

  str.strip():去除字符串str首尾空格。

(3)大小写转换(会产生新的字符串)

  str.capitalize():首字母大写

  str.title():每个单词都首字母大写

  str.lower():所有字符全转为小写

  str.upper():所有字符全转为大写

  str.swapcase():所有字符大小写转换

(4)格式排版(居中/左对齐/右对齐)  

>>> str = "gjr"
>>> str.center(10)
'    gjr     '
>>> str.center(10,"*")
'***gjr****'
>>> str.ljust(10,"*")
'gjr*******'
>>> str.rjust(10,"*")
'*******gjr'
>>> str.rjust(10)
'         gjr'

 (5)其他方法

  str.isspace():判断是否为空字符串,其中\n\t\r也是空字符,如果是则返回True

  str.isalpha():判断字符串中是否只包含字符(包括汉字)

 

  

  

  

推荐阅读