📜  Python|根据大小提取前缀

📅  最后修改于: 2022-05-13 01:55:45.240000             🧑  作者: Mango

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']