本文将介绍字符串常用方法,包括:find()、rfind()、index()、rindex()、count()、replace()等。
【自然语言处理】NLP入门(一):1、正则表达式与Python中的实现(1):字符串构造、字符串截取
【自然语言处理】NLP入门(二):1、正则表达式与Python中的实现(2):字符串格式化输出(%、format()、f-string)
【自然语言处理】NLP入门(三):1、正则表达式与Python中的实现(3):字符转义符
在Python中有很多内置函数可以对字符串进行操作。如len()
、ord()
、chr()
、max()
、min()
、bin()
、oct()
、hex()
等。
自然语言处理】NLP入门(四):1、正则表达式与Python中的实现(4):字符串常用函数
在Python中,函数(function)和方法(method)都是可调用的对象,但它们之间有一些区别:
def
关键字定义,并可以在任何地方调用。def greet(name):
return f"Hello, {name}!"
print(greet("Alice")) # Output: Hello, Alice!
self
关键字来访问对象的属性和其他方法。class Dog:
def __init__(self, name):
self.name = name
def bark(self):
return f"{self.name} says Woof!"
my_dog = Dog("Buddy")
print(my_dog.bark()) # Output: Buddy says Woof!
函数是独立的代码块,而方法是与类或对象相关联的函数。 方法依赖于类和对象的概念,而函数则是更一般的概念,不一定与特定的类或对象相关联。
由于字符串属于不可变序列类型,常用方法中涉及到返回字符串的都是新字符串,原有字符串对象不变。
Python提供了三种方法来对字符串进行对齐:center()
, ljust()
和 rjust()
。
lower()
将字符串中的大写字母转换为小写字母,其他字符不变,并返回新字符串。upper()
将字符串中的小写字母转换为大写字母,其他字符不变,并返回新字符串。capitalize()
将字符串的首字母转换为大写,其余字母转为小写,返回新字符串。title()
将每个单词的首字母转为大写,其他字母转为小写,返回新字符串。swapcase()
将字符串中的大小写字母互换,返回新字符串。【自然语言处理】NLP入门(五):1、正则表达式与Python中的实现(5):字符串常用方法:对齐方式、大小写转换详解
s = 'Heart is living in tomorrow'
print(s.find('Heart')) # 输出: 0
print(s.find('is')) # 输出: 6
print(s.find('heart')) # 输出: -1 (不存在)
print(s.find('i')) # 输出: 6 (找到第一个'i')
print(s.find('i', 7)) # 输出: 10 (从索引7开始查找)
print(s.find('i', 11)) # 输出: 12
print(s.find('i', 13)) # 输出: 16
print(s.find('i', 17)) # 输出: -1 (从17到结尾没有'i')
print(s.rfind('i')) # 输出: 16 (找到最后一个'i')
index()和rindex()方法与find()和rfind()类似,不同之处在于如果没有找到子串,会抛出ValueError异常,而不是返回-1。一般使用find()更加安全和方便。
s = 'Hello, hello, HELLO'
print(s.count('hello')) # 输出: 1
print(s.count('Hello')) # 输出: 1
print(s.count('ll', 4)) # 输出: 1 (从索引4开始统计)
print(s.count('ll')) # 输出: 2
s = 'Heart is living in tomorrow'
print(s.replace('i', 'I')) # 输出: Heart Is lIvIng In tomorrow
print(s) # 输出: Heart is living in tomorrow (原字符串不变)
s1 = '中国北京,北京地铁,地铁沿线,沿线城市'
print(s1.replace('北京', 'Beijing')) # 输出: 中国Beijing,Beijing地铁,地铁沿线,沿线城市
print(s1.replace('北上', 'Beijing')) # 输出: 中国北京,北京地铁,地铁沿线,沿线城市 (没有'北上'子串)
print(s1.replace('北京', 'Beijing', 1)) # 输出: 中国Beijing,北京地铁,地铁沿线,沿线城市 (替换1次)