在 Python 中从字符串中删除前 N 个字符

目录

Remove the first two characters from a String in Python

  1. 从 Python 中的字符串中删除前 N 个字符
  2. 如果前 N 个字符等于某个值,则删除它们
  3. 使用 str.replace() 从字符串中删除前 N 个字符
  4. 使用 for 循环从字符串中删除前 N 个字符
  5. 使用 lstrip 从字符串中删除前 N 个字符

在 Python 中删除字符串中的前 N ​​个字符

使用字符串切片从字符串中删除前 N 个字符,例如
new_string = string[N:].

切片将通过返回从前 N 个字符之后的字符开始的字符串副本,从字符串中删除前 N 个字符。

主程序
string = 'bobbyhadz.com' # ✅ Remove the first 2 characters from a string new_string = string[2:] print(new_string) # 👉️ bbyhadz.com # ✅ Remove the first 3 characters from a string new_string = string[3:] print(new_string) # 👉️ byhadz.com # ✅ Remove the first 4 characters from a string new_string = string[4:] print(new_string) # 👉️ yhadz.com

我们使用字符串切片从字符串中删除前 N 个字符。

字符串切片的语法
my_str[start:stop:step].

索引start是包含的,而stop索引是排他的(最多,但不包括)。

Python 索引是从零开始的,因此字符串中的第一个字符的索引为0,最后一个字符的索引为-1or len(my_str) - 1

切片string[2:]从索引开始2,一直到字符串的末尾。

主程序
string = 'bobbyhadz.com' new_string = string[2:] print(new_string) # 👉️ bbyhadz.com

换句话说,切片删除了字符串的前 2 个字符(索引
01)。

如果您不需要保留原始变量,请重新分配它而不是声明一个新变量。

主程序
string = 'bobbyhadz.com' string = string[3:] print(string) # 👉️ byhadz.com

切片string[3:]从索引开始3,一直到字符串的末尾。

换句话说,它从字符串中删除前 3 个字符(索引0,
12)。

如果前 N 个字符等于某个值,则删除它们

如果您只想从字符串中删除前 N 个字符(如果它们等于某个值),请使用该str.startswith()方法。

主程序
string = 'bobbyhadz.com' substring = 'bob' if string.startswith(substring): string = string[len(substring):] print(string) # 👉️ byhadz.com

如果字符串以指定字符开头,则该示例仅从字符串中删除前 3 个字符。

如果字符串以提供的前缀开头,则 str.startswith 方法返回,否则

方法
返回TrueFalse

如果需要获取字符串的两个部分,也可以使用字符串切片。

主程序
string = 'bobbyhadz.com' n = 3 before, after = string[:n], string[n:] print(before) # 👉️ bob print(after) # 👉️ byhadz.com

切片string[:3]从 index 开始0,一直到 index ,但不包括 index 3

换句话说,它返回字符串中的前 3 个字符(索引0,
12)。

切片string[3:]从索引开始3,一直到字符串的末尾。

或者,您可以使用该str.replace()方法。

使用 str.replace() 从字符串中删除前 N 个字符

这是一个三步过程:

  1. 使用字符串切片获取字符串的前 N ​​个字符。
  2. 使用该str.replace()方法从字符串中删除前 N 个字符。
  3. 通过用空字符串替换它们来删除字符。
主程序
string = 'bobbyhadz.com' n = 2 new_string = string.replace(string[:n], '', 1) print(new_string) # 👉️ bbyhadz.com

我们使用该str.replace()方法通过用空字符串替换它们来从字符串中删除前 N 个字符。

默认情况下,该str.replace()方法会替换字符串中所有出现的提供的子字符串,因此我们指定了一个计数以确保我们只替换第一次出现的地方。 1

str.replace方法返回字符串的副本,其中所有出现的子字符串都被提供的替换项替换

该方法采用以下参数:

姓名 描述
老的 字符串中我们要替换的子串
新的 每次出现的替换old
数数 count只替换第一次出现的(可选)

该方法不会更改原始字符串。字符串在 Python 中是不可变的。

或者,您可以使用for循环。

使用 for 循环从字符串中删除前 N 个字符

这是一个三步过程:

  1. 使用for循环迭代字符串enumerate()
  2. 检查索引是否大于或等于 N。
  3. 如果满足条件,则将当前字符附加到新字符串。
主程序
string = 'bobbyhadz.com' new_string = '' n = 3 for index, char in enumerate(string): if index >= n: new_string += char print(new_string) # 👉️ 'byhadz.com'

我们使用该enumerate()函数来访问当前迭代的索引。

主程序
string = 'abc' for index, char in enumerate(string): print(char, index) # 👉️ a 0, b 1, c 2

enumerate函数接受一个可迭代对象并返回一个包含元组的枚举对象,其中第一个元素是索引,第二个元素是相应的项目

在每次迭代中,我们检查当前索引是否大于或等于 N。

如果满足条件,我们将当前字符添加到新字符串中。

运算+=符是 的简写new_string = new_string + char

从字符串中删除前 N 个字符lstrip

或者,您可以使用该str.lstrip()方法。

主程序
my_str = 'avocado' result_1 = my_str.lstrip(my_str[0:2]) print(result_1) # 👉️ 'ocado' result_2 = my_str.lstrip('av') print(result_2) # 👉️ 'ocado'

第一个示例使用 slice of0:2获取字符串的前 2 个字符。

str.lstrip方法将包含字符
字符串作为参数,并返回删除了指定前导字符的字符串副本。

该方法不改变原来的字符串,它返回一个新的字符串。字符串在 Python 中是不可变的。

请注意,该str.lstrip()方法不一定只从字符串中删除前两个字符。

该方法从字符串的开头删除指定字符的所有出现和组合。

额外资源

您可以通过查看以下教程来了解有关相关主题的更多信息: