Python 程序删除给定数字之前的所有数字
在本文中,我们将学习如何在 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() 函数,我们还学习了如何使用索引和元素值进行迭代。