python分割和拼接字符串

python分割和拼接字符串
最新回答
明月本无心

2023-05-08 02:01:22

Python 字符串分割与拼接方法详解

Python 提供了多种字符串分割与拼接的方法,其中最常用的是 split() 和 join(),同时 os.path 模块也提供了路径相关的分割与拼接方法。以下是具体说明与实例:

1. 字符串分割方法 split()功能

将字符串按指定分隔符拆分为列表,支持限制分割次数。

语法str.split(sep=None, maxsplit=-1)
  • sep:分隔符(默认为空格或空白字符)。
  • maxsplit:最大分割次数(默认为 -1,表示不限制)。
示例text = "Python is a great language"# 默认按空格分割print(text.split()) # 输出: ['Python', 'is', 'a', 'great', 'language']# 按指定分隔符分割print(text.split("a")) # 输出: ['Python is ', ' gre', 't l', 'ngu', 'ge']# 限制分割次数print(text.split("a", 2)) # 输出: ['Python is ', ' gre', 't language']注意事项
  • 若 sep 为空字符串(""),会抛出 ValueError。
  • 若 sep 未在字符串中出现,返回包含原字符串的列表。
2. 字符串拼接方法 join()功能

将序列(如列表、元组)中的字符串元素按指定分隔符拼接成一个新字拍拿符串。

语法sep.join(iterable)
  • sep:分隔符(可为空字符串)。
  • iterable:可迭代对象(如列表、元组),元素必须为字符串类型。
示例words = ["Python", "is", "awesome"]# 用空格拼接print(" ".join(words)) # 输出: "Python is awesome"# 用连字符拼接print("-".join(words)) # 输出: "Python-is-awesome"# 空分隔符拼接print("".join(words)) # 输出: "Pythonisawesome"注意事项
  • 若 iterable 包含非字符串元素(如数字),需先转换为字符串:nums = [1, 2, 3]print(" ".join(map(str, nums))) # 输出: "1 2 3"
3. 路径处理:os.path.split() 与 os.path.join()os.path.split()功能

将路径拆分为目录名和文件名两部分,返回元组 (dir, file)。

示例import ospath = r"C:Program Files123.doc"print(os.path.split(path)) # 输出掘握: ('C:Program Files', '123.doc')# 处理末尾带斜杠的路径print(os.path.split(r"C:Program Files")) # 输出: ('C:Program Files', '')os.path.join()功能

将多个路径组件判贺庆智能拼接为完整路径,自动处理斜杠方向和冗余分隔符。

示例import os# 拼接路径print(os.path.join("C:", "csv", "test.csv")) # 输出: 'C:csvtest.csv'# 忽略第一个绝对路径前的参数print(os.path.join("windowstemp", "C:", "csv", "test.csv")) # 输出: 'C:csvtest.csv'# Linux 路径示例print(os.path.join("/home/aa", "/home/aa/bb", "/home/aa/bb/c")) # 输出: '/home/aa/bb/c'4. 综合实例:敏感词替换函数

以下是一个将字符串中指定单词替换为星号的函数:

def censor(text, word): # 按空格分割字符串 texts = text.split(" ") for i in range(len(texts)): if texts[i] == word: texts[i] = "*" * len(word) # 替换为对应长度的星号 return " ".join(texts) # 重新拼接为字符串# 测试print(censor("this hack is wack hack", "hack")) # 输出: "this is wack "print(censor("hey hey hey", "hey")) # 输出: "* * *"关键点
  • 分割:使用 split(" ") 按空格拆分字符串。
  • 替换:遍历列表,匹配目标单词后替换为星号。
  • 拼接:使用 join(" ") 将列表重新组合为字符串。
总结
  • split():按分隔符拆分字符串为列表,支持限制分割次数。
  • join():将序列中的字符串元素按分隔符拼接为新字符串。
  • os.path.split():拆分路径为目录和文件名。
  • os.path.join():智能拼接路径,自动处理跨平台分隔符问题。

这些方法在文本处理和路径操作中非常高效,掌握它们能显著提升代码简洁性和可读性。