Python 以去除给定数字之前的所有数字

Python 以去除给定数字之前的所有数字

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

使用的方法

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

  • 使用列表推导、split()、enumerate()和index()函数

  • 使用re模块

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

示例

假设我们接收了一个 输入字符串 和一个 输入数字 。我们将从输入字符串中删除所有输入数字之前的数字。

输入

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

输出

Resultant string after removing digits before input number{ 10 }:
hello 10 tutorialspoint 15 python codes

在上面的输入字符串中,输入数字之前的数字有6和8。因此,它们从输入字符串中删除,并保留结果字符串。 方法1:使用列表推导,split(),enumerate()和index()函数 enumerate()方法将计数器添加到可迭代对象中,并返回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)

输出

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

Input String: hello 6 8 10 tutorialspoint 15 python codes
Resultant string after removing digits before input number{ 10 }:
hello 10 tutorialspoint 15 python codes

方法2:使用re模块

示例

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

# importing re(regex) module
import re

# input string
inputString = 'hello 6 8 10 tutorialspoint 15 python codes'

# printing input string
print("Input String:", inputString)

# input number
inputNumber = 10

# Using regex substitution
resultantStr = re.sub('[023456789]', '', inputString[0: inputString.index( str(inputNumber))]) + inputString[inputString.index(str(inputNumber)):]

# printing resultant string after removing digits before input number
print("Resultant string after removing digits before input number{", inputNumber, "}:\n", resultantStr)

输出

执行上述程序后,将生成以下输出结果 –

Input String: hello 6 8 10 tutorialspoint 15 python codes
Resultant string after removing digits before input number{ 10 }:
hello 10 tutorialspoint 15 python codes

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

replace()函数 - 返回将所有旧子字符串替换为新子字符串的字符串副本。

语法

string.replace(old, new, count)

步骤

下面是执行所需任务的算法/步骤:

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

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

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

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

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

  • 打印删除输入数字之前的所有数字后得到的字符串。

示例

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

# input string
inputString = 'hello 6 8 10 tutorialspoint 15 python codes'

# printing input string
print("Input String:", inputString)

# input number
inputNumber = 10

# getting the index of input number in a string
num_index = inputString.index(str(inputNumber))

# storing all the digits in a string
digits_str = "0123456789"

# slicing the string till before the input number
first_str = inputString[:num_index]

# slicing the string after input number
secd_str = inputString[num_index:]

# traversing through each character of digits
for c in digits_str:

   # replacing the first string with a null character
   first_str = first_str.replace(c, "")

# printing resultant string after removing digits before input number
print("Resultant string after removing digits before input number{", inputNumber, "}:\n", (first_str+secd_str))

输出

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

Input String: hello 6 8 10 tutorialspoint 15 python codes
Resultant string after removing digits before input number{ 10 }:
hello 10 tutorialspoint 15 python codes

结论

这篇文章告诉我们三种不同的方法来删除给定数字之前的所有数字。使用enumerate()函数,我们还学会了如何在迭代中使用索引和元素值。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程