Python – 保留字符串中的数字
有时,在使用Python字符串时,我们可能会遇到需要删除除整数以外的所有字符的问题。这类问题可以应用于许多数据领域,例如机器学习和 Web 开发。让我们讨论可以执行此任务的某些方式。
Input : test_str = ‘G4g is No. 1’
Output : 41
Input : test_str = ‘Gfg is No. 1’
Output : 1
方法 #1:使用列表理解 + join() + isdigit()
上述功能的组合可以用来解决这个问题。在此,我们使用 isdigit() 执行提取整数的任务,列表推导用于迭代,而 join() 用于执行过滤后的数字的连接。
# Python3 code to demonstrate working of
# Retain Numbers in String
# Using list comprehension + join() + isdigit()
# initializing string
test_str = 'G4g is No. 1 for Geeks 7'
# printing original string
print("The original string is : " + str(test_str))
# Retain Numbers in String
# Using list comprehension + join() + isdigit()
res = "".join([ele for ele in test_str if ele.isdigit()])
# printing result
print("String after integer retention : " + str(res))
输出 :
The original string is : G4g is No. 1 for Geeks 7
String after integer retention : 417
方法 #2:使用regex()
使用正则表达式也可以找到问题的解决方案。在此,我们制定适当的正则表达式来仅过滤来自字符串的数字。
# Python3 code to demonstrate working of
# Retain Numbers in String
# Using regex()
import re
# initializing string
test_str = 'G4g is No. 1 for Geeks 7'
# printing original string
print("The original string is : " + str(test_str))
# Retain Numbers in String
# Using regex()
res = re.sub(r'[^\d]+', '', test_str)
# printing result
print("String after integer retention : " + str(res))
输出 :
The original string is : G4g is No. 1 for Geeks 7
String after integer retention : 417