Python |从字符串列表中提取数字
有时,我们可以以多种形式获取数据,我们希望对整体的某些特定部分进行转换和提取。一个这样的问题可能是从字符串中提取一个数字并扩展它,有时它可能不仅仅是一个元素字符串,而是它的一个列表。让我们讨论一下解决这个问题的某些方法。
方法一:使用列表理解+ split()
这个特殊的问题可以通过使用列表理解功能来解决,该功能将逻辑扩展到所有项目,并且拆分功能执行拆分任务并获取目标所需元素。
# Python3 code to demonstrate
# Extracting numbers from list of strings
# using list comprehension + split()
# initializing list
test_list = ['Rs. 24', 'Rs. 18', 'Rs. 8', 'Rs. 21']
# printing original list
print("The original list : " + str(test_list))
# using list comprehension + split()
# Extracting numbers from list of strings
res = [int(sub.split('.')[1]) for sub in test_list]
# print result
print("The list after Extracting numbers : " + str(res))
Output :
The original list : ['Rs. 24', 'Rs. 18', 'Rs. 8', 'Rs. 21']
The list after Extracting numbers : [24, 18, 8, 21]
方法二:使用join() + isnumeric()
+列表理解+map()
+T3】
这种方法在没有预先定义数字将按特定方式排序的情况下是优选的,即,这种方法提供了从任何可能的位置获得数字的灵活性。
# Python3 code to demonstrate
# Extracting numbers from list of strings
# using join() + isnumeric() + list comprehension + map()
# initializing list
test_list = ['Rs. 24', 'Rs. 18', 'Rs. 8', 'Rs. 21']
# printing original list
print("The original list : " + str(test_list))
# using join() + isnumeric() + list comprehension + map()
# Extracting numbers from list of strings
res = list(map(lambda sub:int(''.join(
[ele for ele in sub if ele.isnumeric()])), test_list))
# print result
print("The list after Extracting numbers : " + str(res))
Output :
The original list : ['Rs. 24', 'Rs. 18', 'Rs. 8', 'Rs. 21']
The list after Extracting numbers : [24, 18, 8, 21]
版权属于:月萌API www.moonapi.com,转载请注明出处