Python|根据大小提取前缀
有时,在使用Python时,我们可能会遇到需要从字符串中提取前缀的问题。有时这可能是有条件的,如果字符串的大小大于某个 N,我们只需要提取特定长度的子字符串。让我们讨论可以执行此任务的某些方法。
方法#1:使用循环
这是执行此任务的蛮力方式,我们使用循环根据大小提取字符串。
# Python3 code to demonstrate
# Prefix extraction depending on size
# using loop
# Initializing list
test_list = ['geeksforgeeks', 'is', 'best', 'for', 'geeks']
# Initializing K
K = 2
# Initializing N
N = 4
# printing original list
print("The original list is : " + str(test_list))
# Prefix extraction depending on size
# using loop
res = []
for idx in test_list:
if len(idx) >= N:
res.append(idx[:K])
# printing result
print ("List after prefix extraction : " + str(res))
输出 :
The original list is : ['geeksforgeeks', 'is', 'best', 'for', 'geeks']
List after prefix extraction : ['ge', 'be', 'ge']
方法 #2:使用filter()
+ lambda
也可以使用上述功能的组合来执行此任务。在此,我们使用 filter() 执行检查任务,并使用列表推导以更短的方式完成提取。
# Python3 code to demonstrate
# Prefix extraction depending on size
# using filter() + lambda
# Initializing list
test_list = ['geeksforgeeks', 'is', 'best', 'for', 'geeks']
# Initializing K
K = 2
# Initializing N
N = 4
# printing original list
print("The original list is : " + str(test_list))
# Prefix extraction depending on size
# using filter() + lambda
res = [sub[:K] for sub in filter(lambda ele : len(ele) >= N, test_list)]
# printing result
print ("List after prefix extraction : " + str(res))
输出 :
The original list is : ['geeksforgeeks', 'is', 'best', 'for', 'geeks']
List after prefix extraction : ['ge', 'be', 'ge']