Python字符串处理全攻略(二):常用内置方法轻松掌握

2023-12-22 15:04:33

引言

欢迎来到Python的世界!字符串是Python中最基本的数据类型之一,它们就像是文本的小盒子,可以帮我们存储和处理各种各样的文本数据。

Python非常贴心地为我们提供了许多内置方法来处理这些字符串。这些方法就像是魔法工具,可以帮助我们完成各种神奇的文本操作和转换。

今天,我们继续探索常用的Python字符串内置方法。我会用最简单的语言,通过具体的示例代码,详细解释每个方法的使用方法和应用场景。让我们一起开始这个有趣的Python字符串之旅吧!

Python字符串处理全攻略(一):常用内置方法轻松掌握

Python字符串常用内置方法

str.title()

str.title() 方法是一个非常实用的字符串方法,可以将字符串中每个单词的首字母转换为大写,其余部分转换为小写

语法

str.title()

示例

  1. 字符串中的每个单词首字母大写
s = "hello world, this is a test"
print(s.title())  # 输出: Hello World, This Is A Test
  1. 非英文字符的处理
s = "你好,世界!"
print(s.title())  # 输出: 你好,世界!,不会进行大小写转换,仅将每个单词的首字母转换为大写。
  1. 与split()结合使用
s = "heLLo woRLd"
print(" ".join(s.split()).title())  # 输出: Hello World

运行结果:

在这里插入图片描述

  1. 处理特殊字符
s = "hello-world"
print(s.title())  # 输出: Hello-World,特殊字符保持不变。

注意事项

  1. title()方法会将字符串中每个单词的首字母转换为大写,其余部分转换为小写。对于英文字符,这通常是将每个单词的首字母转换为大写。对于非英文字符,情况就比较复杂,因为这些字符可能没有对应的大写形式。例如,一些语言中的特殊字符在转换为大写后可能会失去一些语义信息。
  2. title()方法只作用于空格分隔的单词。它不会对标点符号或其他特殊字符进行任何处理。因此,如果字符串中包含标点符号或其他特殊字符,它们将保持不变。
  3. title()方法不会删除字符串中的空格或其他空白字符。如果需要删除这些字符,可以使用strip()方法或replace()方法来处理。
  4. title()方法不会修改原始字符串。它会返回一个新的字符串,其中每个单词的首字母都已转换为大写。原始字符串保持不变。

str.replace()

str.replace() 是 Python 中字符串对象的一个方法,用于在字符串中替换指定的子串。这个方法接受两个参数:要被替换的子串(old)和用来替换的新子串(new)。

语法

str.replace(old, new[, count])
  • old:需要被替换的子串。
  • new:用来替换的新子串。
  • count:可选参数,指定替换的次数。如果不指定,将替换所有匹配项。如果指定了某个数值,则只替换前count个匹配项。

示例

  1. 常规操作
s = "Hello, World!"
print(s.replace("World", "Python"))  # 输出: "Hello, Python!"
  1. 指定count参数,将","替换两次
s = "apple,banana,cherry"
print(s.replace(",", ";", 2))  # 输出: "apple;banana;cherry" <--- 替换两次
  1. 若不指定count参数,默认替换所有匹配项
s = "apple,banana,cherry"
print(s.replace("a", "o"))  # 输出: "opple,bonono,cherry"
  1. 用其它字符替换空字符串
s = "apple,banana,cherry"
print(s.replace("", "X"))  # 输出: "XaXpXpXlXeX,XbXaXnXaXnXaX,XcXhXeXrXrXyX"
  1. 替换部分字符为空字符串
s = "apple,,cherry"
print(s.replace(",", ""))  # 输出: "applecherry"

注意事项

  1. replace()方法返回一个新的字符串,原始字符串不会被修改。
  2. 如果old参数为空字符串,则字符串每个字符之间都会添加new参数指定的字符串(示例4)。
  3. 如果new参数为空字符串,则匹配到的子串会被删除(示例5)。

str.join()

str.join() 用于将一个可迭代对象(如列表或元组)中的所有元素连接成一个新的字符串。

语法

str.join(iterable[, separator])
  • iterable:可迭代对象,如列表或元组。
  • separator:可选参数,指定连接元素之间的分隔符。如果不指定,默认为空字符串。

示例

  1. 常规操作

以空格字符作为分隔符,拼接字符串"Hello""world"

words = ["Hello", "world"]
print(" ".join(words))  # 输出: "Hello world"
  1. 使用自定义分隔符

逗号+空格字符作为分隔符:

words = ["apple", "banana", "cherry"]
print(", ".join(words))  # 输出: "apple, banana, cherry"

注意事项

  1. str.join()方法返回一个新的字符串,原始的可迭代对象不会被修改。
  2. 如果可迭代对象中的元素不是字符串类型,将会引发TypeError。因此,在使用str.join()方法之前需要确保可迭代对象中的元素都是字符串类型。
  3. 如果不指定分隔符,则默认使用空字符串作为分隔符。这意味着所有元素将会被连接成一个连续的字符串。

str.split()

str.split() 可用于将字符串按照指定的分隔符进行切割,返回一个列表。

语法

str.split(separator, maxsplit)
  • separator:可选参数,指定分隔符。可以是任意字符串,默认为 None。如果没有指定分隔符,则默认按照空格进行切割
  • maxsplit:可选参数,指定最大分割次数。如果指定了该参数,则最多会按照 maxsplit 次分隔符进行切割。

示例

  1. 常规操作

空格作为分隔符分割字符串s

s = "Hello, World!"
print(s.split())  # 输出: ['Hello,', 'World!']
  1. 指定","作为分隔符
s = "apple,banana,cherry"
print(s.split(","))  # 输出: ['apple', 'banana', 'cherry']
  1. 指定最大分割次数为2
s = "apple,banana,cherry,orange"
print(s.split(",", 2))  # 输出: ['apple', 'banana', 'cherry,orange']

注意事项

  1. str.split() 方法返回一个列表,列表中的每个元素是原字符串根据分隔符分割后的子串。

  2. 如果省略了 separator 参数,则默认按照空格进行切割。但是,如果字符串中有连续的空格,则它们也会被视为分隔符。

  3. maxsplit 参数是可选的,如果不指定,则默认会分割所有可能的子串。如果指定了该参数,则最多会按照 maxsplit 次分隔符进行切割。需要注意的是,如果 maxsplit 的值大于实际分隔符的数量,则只会分割出有限个子串。


str.strip()

str.strip() 可用于删除字符串两端的空白字符(包括空格、换行符、制表符等)。

语法

str.strip([chars])
  • chars:可选参数,指定要删除的字符。如果不指定,将删除所有空白字符。

示例

  1. 常规操作
s = "   Hello, World!   "
print(s.strip())  # 输出: "Hello, World!"
  1. 指定要删除的字符
s = "#$# Hello, World! #$#"
print(s.strip("#$"))  # 输出: "Hello, World!"
  1. 不指定字符,删除所有空白字符
s = " \n \t Hello, World! \n \t "
print(s.strip())  # 输出: "Hello, World!"

注意事项

  1. strip()方法返回一个新的字符串,原始字符串不会被修改。
  2. 如果不指定chars参数,strip()方法将删除所有空白字符(包括空格、换行符、制表符等)。如果指定了chars参数,它将删除指定的字符。如果chars参数为空字符串,则不会删除任何字符。

str.zfill()

str.zfill() 可用于在字符串的左侧填充零,以达到指定的宽度。这个方法接受一个参数,即要填充的宽度。

语法

str.zfill(width)
  • width:指定填充后的字符串总宽度

示例

  1. 常规操作
s = "111"
print(s.zfill(5))  # 输出: "00111"
  1. 填充宽度大于字符串长度的情况
s = "111"
print(s.zfill(10))  # 输出: "000000111"
  1. 填充宽度小于字符串长度的情况
s = "111111"
print(s.zfill(3))  # 输出: "111111"
  1. 处理特殊字符的情况
s = "-11"
print(s.zfill(5))

s = "+11"
print(s.zfill(5))

s = "#11"
print(s.zfill(5))

s = "%11"
print(s.zfill(5))  

运行结果:

在这里插入图片描述

  1. 使用负数作为宽度参数的情况
s = "11"
print(s.zfill(-5))  # 输出: "11"

注意事项

  1. zfill()方法返回一个新的字符串,原始字符串不会被修改。
  2. 如果指定的宽度大于原始字符串的长度,则会在原始字符串的左侧填充零,直到达到指定的宽度。
  3. 如果指定的宽度小于原始字符串的长度,则返回原始字符串,不会进行任何修改。

结束语

  • 亲爱的读者,感谢您花时间阅读我们的博客。我们非常重视您的反馈和意见,因此在这里鼓励您对我们的博客进行评论。
  • 您的建议和看法对我们来说非常重要,这有助于我们更好地了解您的需求,并提供更高质量的内容和服务。
  • 无论您是喜欢我们的博客还是对其有任何疑问或建议,我们都非常期待您的留言。让我们一起互动,共同进步!谢谢您的支持和参与!
  • 我会坚持不懈地创作,并持续优化博文质量,为您提供更好的阅读体验。
  • 谢谢您的阅读!

文章来源:https://blog.csdn.net/qq_41813454/article/details/135143765
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。