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() 函数删除输入字符串中的给定数字之前的所有数字-
# input string
inputString = 'hello 6 8 10 tutorialspoint 15 python codes'
# printing input string
print("Input String:", inputString)
# input number
inputNumber = 10
# splitting a string into a list of words and
# getting the index of input number in a string
num_index = inputString.split().index(str(inputNumber))
# Getting the result using list comprehension
resultantList = [element for p,element in enumerate(inputString.split()) if not (p < num_index and element.isdigit())]
# converting the list into a string using join() function
resultantStr = ' '.join(resultantList)
# printing resultant string after removing digits before input number
print("Resultant string after removing digits before input number{", inputNumber, "}:\n", resultantStr)
输出
执行上面的程序将生成以下输出 –
输入字符串:hello 6 8 10 tutorialspoint 15 python codes
移除输入数字{ 10 }之前的数字后的结果字符串:
hello 10 tutorialspoint 15 python codes
方法2:使用re模块
示例
以下程序使用re模块删除输入字符串中给定数字之前的所有数字 –
# 导入 re ( regex )模块
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("移除输入数字之前的数字后的结果字符串:\n", (first_str+secd_str))
输出
执行上面的程序将生成以下输出 –
输入字符串:hello 6 8 10 tutorialspoint 15 python codes
移除输入数字之前的数字后的结果字符串:
hello 10 tutorialspoint 15 python codes
结论
本文教我们三种不同的方法来删除给定数字之前的所有数字。使用enumerate()函数,我们还学习了如何使用索引和元素值进行迭代。