📜  Python|在特定位置使用子字符串过滤字符串

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

Python|在特定位置使用子字符串过滤字符串

有时,在使用Python字符串列表时,我们可能会遇到一个问题,即我们只需要提取那些在特定位置具有特定子字符串的列表。这类问题可能出现在数据处理和 Web 开发领域。让我们讨论可以执行此任务的某些方式。

方法#1:使用列表理解+列表切片
上述功能的组合可用于执行此特定任务。在此,我们使用列表切片检查子字符串范围,提取列表的任务在列表理解中编译。

# Python3 code to demonstrate 
# Filter String with substring at specific position
# using list comprehension + list slicing
  
# Initializing list
test_list = ['geeksforgeeks', 'is', 'best', 'for', 'geeks']
  
# printing original list
print("The original list is : " + str(test_list))
  
# Initializing substring
sub_str = 'geeks'
  
# Initializing range 
i, j = 0, 5
  
# Filter String with substring at specific position
# using list comprehension + list slicing
res = [ele for ele in test_list if ele[i: j] == sub_str]
  
# printing result 
print ("Filtered list : " + str(res))
输出 :
The original list is : ['geeksforgeeks', 'is', 'best', 'for', 'geeks']
Filtered list : ['geeksforgeeks', 'geeks']

方法 #2:使用filter() + lambda
上述方法的组合可用于执行此任务。在此,我们使用 filter() 使用 lambda 编译的逻辑过滤元素。

# Python3 code to demonstrate 
# Filter String with substring at specific position
# using filter() + lambda
  
# Initializing list
test_list = ['geeksforgeeks', 'is', 'best', 'for', 'geeks']
  
# printing original list
print("The original list is : " + str(test_list))
  
# Initializing substring
sub_str = 'geeks'
  
# Initializing range 
i, j = 0, 5
  
# Filter String with substring at specific position
# using filter() + lambda
res = list(filter(lambda ele: ele[i: j] == sub_str, test_list))
  
# printing result 
print ("Filtered list : " + str(res))
输出 :
The original list is : ['geeksforgeeks', 'is', 'best', 'for', 'geeks']
Filtered list : ['geeksforgeeks', 'geeks']