📌  相关文章
📜  Python|在列表中查找具有给定子字符串的字符串

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

Python|在列表中查找具有给定子字符串的字符串

Python可以很容易地处理并且也被多次处理的经典问题是查找字符串是否是其他字符串的子字符串。但有时,人们希望在字符串列表上扩展它,因此需要遍历整个容器并执行通用算法。

让我们讨论一些在列表中查找具有给定子字符串的字符串的方法。

方法#1:使用列表推导
列表理解是执行任何特定任务的一种优雅方式,因为它从长远来看增加了可读性。此任务可以使用简单的方法执行,因此也可以简化为列表理解。

# Python code to demonstrate 
# to find strings with substrings 
# using list comprehension 
  
# initializing list 
test_list = ['GeeksforGeeks', 'Geeky', 'Computers', 'Algorithms']
  
# printing original list 
print ("The original list is : " + str(test_list))
  
# initializing substring
subs = 'Geek'
  
# using list comprehension 
# to get string with substring 
res = [i for i in test_list if subs in i]
  
# printing result 
print ("All strings with given substring are : " + str(res))
输出:
The original list is : ['GeeksforGeeks', 'Geeky', 'Computers', 'Algorithms']
All strings with given substring are : ['GeeksforGeeks', 'Geeky']


方法 #2:使用filter() + lambda
此函数还可以在 lambda 的帮助下执行查找字符串的任务。它只是过滤掉与特定子字符串匹配的所有字符串,然后将其添加到新列表中。

# Python code to demonstrate 
# to find strings with substrings 
# using filter() + lambda
  
# initializing list 
test_list = ['GeeksforGeeks', 'Geeky', 'Computers', 'Algorithms']
  
# printing original list 
print ("The original list is : " + str(test_list))
  
# initializing substring
subs = 'Geek'
  
# using filter() + lambda 
# to get string with substring 
res = list(filter(lambda x: subs in x, test_list))
  
# printing result 
print ("All strings with given substring are : " + str(res))
输出:
The original list is : ['GeeksforGeeks', 'Geeky', 'Computers', 'Algorithms']
All strings with given substring are : ['GeeksforGeeks', 'Geeky']


方法#3:使用re + search()
正则表达式可用于在Python中执行许多任务。要执行此特定任务,正则表达式也可以派上用场。它使用search()查找所有匹配的子字符串并返回结果。

# Python code to demonstrate 
# to find strings with substrings 
# using re + search()
import re
  
# initializing list 
test_list = ['GeeksforGeeks', 'Geeky', 'Computers', 'Algorithms']
  
# printing original list 
print ("The original list is : " + str(test_list))
  
# initializing substring
subs = 'Geek'
  
# using re + search()
# to get string with substring 
res = [x for x in test_list if re.search(subs, x)]
  
# printing result 
print ("All strings with given substring are : " + str(res))
输出:
The original list is : ['GeeksforGeeks', 'Geeky', 'Computers', 'Algorithms']
All strings with given substring are : ['GeeksforGeeks', 'Geeky']