我想制作一个能够以智能方式搜索单词列表的python程序。
假设我有一个这样的列表:
ex_list=["Red Apples", "Green Apples", "Bananas", "Yoghurt", "ApplePie", "Milk", "Pineapple"]
我要搜索的单词是:
search_word = "Apple"
我希望程序工作的方式是使它返回“ Red Apples”,“ Green Apples”,“ ApplePie”和“ Pineapple”。 (因为它们都包含苹果)
我该如何实现?
我基本上希望它返回包含“ a”,“ p”,“ p”,“ l”和“ e”的所有内容。我不在乎前面是什么(例如greenapple)或后面是什么(例如applePie)。
答案 0 :(得分:2)
带过滤器的单缸纸:
list(filter(lambda x: search_word.lower() in x.lower(), ex_list))
或具有列表理解功能:
[x for x in ex_list if search_word.lower() in x.lower()]
只需根据ex_list
元素包含search_word
(不区分大小写)的条件来过滤列表即可。
结果:
['Red Apples', 'Green Apples', 'ApplePie', 'Pineapple']