Python 程序删除给定数字之前的所有数字

pythonserver side programmingprogramming

在本文中,我们将学习如何在 Python 中删除给定数字之前的所有数字。

使用的方法

以下是完成此任务的各种方法 -

  • 使用列表理解、split()、enumerate() 和 index() 函数

  • 使用 re 模块

  • 使用切片、index() 和 replace() 函数

示例

假设我们已获取一个输入字符串和一个输入数字。我们现在将从输入字符串中删除输入数字之前的所有数字。

输入

inputString = 'hello 6 8 10 tutorialspoint 15 python codes'
inputNumber = 10

输出

删除输入数字之前的数字后的结果字符串{ 10 }:
hello 10 tutorialspoint 15 python codes

在上面的输入字符串中,输入数字10之前的数字是6, 8。因此,它们从输入字符串中删除,结果字符串保留。

方法 1:使用列表推导、split()、enumerate() 和 index() 函数

enumerate() 方法向可迭代对象添加一个计数器并返回枚举对象。

语法

enumerate(iterable, start=0)

参数

  • iterable  − 它可以是任何支持迭代的序列/对象/可迭代对象。

  • start  − enumerate() 从此值开始计数。如果未指定 start,则使用值 0。

index() 函数 − index() 函数返回所提供值第一次出现的位置。

join() 是 Python 中的一个字符串函数,用于连接由字符串分隔符分隔的序列元素。此函数连接序列元素以转换为字符串。

算法(步骤)

以下是执行所需任务需要遵循的算法/步骤 –。

  • 创建一个变量来存储输入字符串

  • 打印输入列表。

  • 创建另一个变量来存储输入数字。

  • 使用 split() 函数将字符串拆分为单词列表,并使用 index() 函数获取字符串中输入数字的索引。

  • 使用 enumerate() 函数迭代输入字符串中的索引和元素,并删除给定数字之前的所有数字/数字。

  • 使用 join() 函数将列表转换为字符串。

  • 删除输入数字之前的数字后打印结果字符串。

示例

以下程序使用列表理解、split()、enumerate() 和 index() 函数删除输入字符串中给定数字之前的所有数字 –

# 输入字符串
inputString = 'hello 6 8 10 tutorialspoint 15 python codes'

# 打印输入字符串
print("输入字符串:", inputString)

# 输入数字
inputNumber = 10

# 将字符串拆分为单词列表

# 获取字符串中输入数字的索引
num_index = inputString.split().index(str(inputNumber))

# 使用列表推导获取结果
resultantList = [element for p, element in enumerate( inputString.split()) if not (p < num_index and element.isdigit())]

# 使用 join() 函数将列表转换为字符串
resultantStr = ' '.join(resultantList)

# 删除输入数字前的数字后打印结果字符串
print("删除数字后的结果字符串输入数字前{", inputNumber, "}:\n", resultantStr)

输出

执行时,上述程序将生成以下输出 –

输入字符串: hello 6 8 10 tutorialspoint 15 python codes
删除输入数字前{ 10 }后的结果字符串:
hello 10 tutorialspoint 15 python codes

方法2:使用re模块

示例

以下程序使用re模块删除输入字符串中给定数字之前的所有数字 –

# importing re(regex) module
import re

# 输入字符串
inputString = 'hello 6 8 10 tutorialspoint 15 python codes'

# 打印输入字符串
print("输入字符串:", inputString)

# 输入数字
inputNumber = 10

# 使用正则表达式替换
resultantStr = re.sub('[023456789]', '', inputString[0: inputString.index( str(inputNumber))]) + inputString[inputString.index(str(inputNumber)):]

# 打印删除输入数字前的数字后的结果字符串
print("删除输入数字前的数字后的结果字符串{", inputNumber, "}:\n", resultantStr)

输出

执行时,上述程序将生成以下输出 –

输入字符串:hello 6 8 10 tutorialspoint 15 python codes
删除输入数字{ 10 }之前的数字后的结果字符串:
hello 10 tutorialspoint 15 python codes

方法 3:使用切片、index() 和 replace() 函数

replace() 函数 − 返回字符串的副本,该副本用另一个新子字符串替换所有出现的旧子字符串。

语法

string.replace(old, new, count)

算法(步骤)

以下是执行所需任务需要遵循的算法/步骤 –

  • 使用 str() 函数将输入数字转换为字符串,并使用 index() 函数获取输入字符串中输入数字的索引。

  • 初始化一个变量,将所有数字存储为字符串。

  • 在输入数字后对字符串进行切片

  • 使用 for 循环遍历上述数字的每个字符。

  • 使用 replace() 函数将当前数字替换为空格/空白。

  • 删除输入数字前的数字后打印结果字符串。

示例

以下程序使用切片、index() 和 replace() 函数删除输入字符串中给定数字之前的所有数字 –

# 输入字符串
inputString = 'hello 6 8 10 tutorialspoint 15 python codes'

# 打印输入字符串
print("输入字符串:", inputString)

# 输入数字
inputNumber = 10

# 获取字符串中输入数字的索引
num_index = inputString.index(str(inputNumber))

# 将所有数字存储在字符串中
digits_str = "0123456789"

# 切片字符串直到输入数字之前
first_str = inputString[:num_index]

# 切片字符串直到输入数字之后
secd_str = inputString[num_index:]

# 遍历每个数字字符
for c in digits_str:

    # 用空字符替换第一个字符串
    first_str = first_str.replace(c, "")

# 打印删除输入数字之前的数字后的结果字符串
print("删除输入数字之前的数字后的结果字符串{", inputNumber, "}:\n", (first_str+secd_str))

输出

执行时,上述程序将生成以下输出 –

输入字符串:hello 6 8 10 tutorialspoint 15 python codes
删除输入数字之前的数字后的结果字符串 { 10 }:hello 10 tutorialspoint 15 python codes

结论

本文教给我们三种不同的方法来删除给定数字前面的所有数字。使用 enumerate() 函数,我们还学习了如何使用索引和元素值进行迭代。


相关文章