Python字符串常见的16种操作方法
Python中字符串是不可变的序列,是非常基础且重要的数据类型。在Python中,字符串具有十分丰富的操作方法,这些方法可以用来操作字符串中的字符、字节和子字符串,使得处理字符串变得更加高效和简便。
1. 字符串创建
在Python中,字符串可以使用单引号、双引号或三引号来创建:
str1 = 'Hello World!' # 使用单引号创建
str2 = "Hello World!" # 使用双引号创建
str3 = '''Hello
World!''' # 使用三引号创建
单引号和双引号用法相同,而三引号可以用来创建多行字符串。
2. 字符串长度
使用Python的内置函数len()
可以获得字符串的长度:
s = "Hello World"
print(len(s)) # 11
通过字符串的长度可以初步了解字符串的结构,这是处理字符串时的重要信息之一。
3. 字符串索引和切片
字符串和其他序列一样,支持索引和切片操作:
- 索引:索引是一种获取字符串中字符的方法,通过索引值可以得到字符串中对应位置的字符。Python中的字符串索引从0开始:
s = "Hello World"
print(s[0]) # H
print(s[-1]) # d
- 切片:切片是通过指定切片的起始位置和结束位置来获取子字符串的方法,有时称为字符串切片。使用冒号:
分割开起始位置和结束位置,其中[:n]表示从开始位置到第n个字符,[m:]表示从第m个字符到末尾,[m:n]表示从第m个字符到第n个字符:
s = "Hello World"
print(s[:5]) # Hello
print(s[6:]) # World
print(s[0:5]) # Hello
索引和切片是字符串最基本、最重要的操作,通常在字符串的其他操作中也会大量使用到。
4. 字符串拼接
使用加号+
可以将两个字符串拼接成一个字符串:
str1 = "Hello"
str2 = "World"
str3 = str1 + " " + str2
print(str3) # Hello World
字符串拼接是在实际开发中被广泛使用的一种操作方式。
5. 字符串重复
使用乘号*
可以将一个字符串重复n遍,构造一个新的字符串:
s = "Hello World!"
print(s * 2) # Hello World!Hello World!
print(s * 3) # Hello World!Hello World!Hello World!
6. 字符串查找
在Python中,查找子字符串第一次出现的位置可以使用find()
或index()
函数,这两个函数的区别在于,当字符串中不存在查找的子字符串时,find()
函数返回-1,而index()
函数则会抛出异常:
s = "Hello World"
print(s.find("W")) # 6
print(s.index("W")) # 6
print(s.find("Z")) # -1
#print(s.index("Z")) # ValueError: substring not found
如果需要查找最后一次出现的位置,则使用rfind()
或rindex()
函数。
7. 字符串替换
使用replace()
函数可以将字符串中指定的子字符串替换为另一个字符串,并返回新的替换后的字符串:
s = "Hello World"
s_new = s.replace("World", "Python")
print(s_new) # Hello Python
在处理某些文本数据时,字符串的替换是非常常见的操作。
8. 字符串分割
使用split()
函数可以将字符串按照指定的分隔符拆分成一个列表:
s = "Hello World"
s_list = s.split(" ")
print(s_list) # ['Hello', 'World']
字符串分割十分常用,例如对日志文件进行处理或者对一段描述性文本分段等。
9. 字符串连接
使用join()
函数可以将一个字符串列表连接成一个新的字符串:
s_list = ['Hello', 'World']
s_new = " ".join(s_list)
print(s_new) # Hello World
10. 字符串大小写转换
使用upper()
函数可以将字符串全部转换为大写形式;使用lower()
函数可以将字符串全部转换为小写形式:
s = "Hello World"
s_upper = s.upper()
s_lower = s.lower()
print(s_upper) # HELLO WORLD
print(s_lower) # hello world
11. 去除字符串空格
在处理字符串时,有时候需要将字符串的开头和结尾的空格去除掉,这可以使用strip()
函数实现:
s = " Hello World! "
s_new = s.strip()
print(s_new) # Hello World!
12. 字符串判断
使用如下函数可以判断字符串是否具有一定的特征:
isalpha()
:判断字符串是否全部由字母组成。
isdigit()
:判断字符串是否全部由数字组成。
isalnum()
:判断字符串是否由字母和数字组成。
isspace()
:判断字符串是否全部由空格字符组成。
startswith()
:判断字符串是否以指定的前缀开始。
endswith()
:判断字符串是否以指定的后缀结束。
s1 = "HelloWorld"
s2 = "12345"
s3 = "Hello123"
s4 = " "
print(s1.isalpha()) # True
print(s2.isdigit()) # True
print(s3.isalnum()) # True
print(s4.isspace()) # True
print(s1.startswith("H")) # True
print(s1.endswith("d")) # True
13. 字符串格式化
使用字符串格式化,可以将可变的数据插入到字符串中。Python提供了多种字符串格式化的方式,其中最常用的方式是通过%
实现:
s = "My name is %s, I am %d years old."
print(s % ('Tom', 20))
# My name is Tom, I am 20 years old.
在上面的例子中,字符串"%s"
表示插入一个字符串,"%d"
表示插入一个整数。在字符串后面的%
后,跟着元组或字典,用以指定要插入的数据。
字符串格式化在Python中使用频率极高,是处理文本数据不可缺少的一种操作方式。
14. 字符串补齐
通常在处理一些文本时,需要对文本的显示作一些调整,将文本按照一定的宽度或对齐方式去展示。Python提供了多种补齐字符串的方式,其中ljust()
和rjust()
可以用来左对齐和右对齐字符串;center()
可以将字符串居中。
s = "Hello"
print(s.ljust(10, "-")) # Hello-----
print(s.rjust(10, "-")) # -----Hello
print(s.center(10, "-")) # --Hello---
15. 格式化输出
常常需要将数字格式化后输出,Python提供了多种数值格式化的方式:
%d
:整数输出。
%f
:浮点数输出。
%e
:科学计数法输出。
%g
:根据数值大小动态选择%f
或%e
。
num = 3.1415926
print("pi is %.2f" % num) # pi is 3.14
print("pi is %e" % num) # pi is 3.141593e+00
print("pi is %g" % num) # pi is 3.14159
16. 检测字符串是否包含特定的子字符串
通常在处理字符串时,需要判断字符串中是否包含特定的子字符串。使用in
操作符可以检测一个字符串是否是另一个字符串的子串:
s = "Hello World"
if "Hello" in s:
print("字符串中包含Hello")
else:
print("字符串中不包含Hello")
总结
Python中字符串是非常基础的数据类型,在Python的操作中也有非常多的字符串操作函数,例如strip()
, format()
, split()
等等。通过使用这些函数,可以高效地操作字符串,进行各种文本处理工作。