在Python中,如何使用模糊匹配获取列表中项目的位置(使用list.index
)?
例如,如何获取以下列表中*berry
形式的所有水果的索引?
fruit_list = ['raspberry', 'apple', 'strawberry']
# Is it possible to do something like the following?
berry_fruit_at_positions = fruit_list.index('*berry')
有人有什么想法吗?
答案 0 :(得分:48)
使用正则表达式:
import re
fruit_list = ['raspberry', 'apple', 'strawberry']
berry_idx = [i for i, item in enumerate(fruit_list) if re.search('berry$', item)]
没有正则表达式:
fruit_list = ['raspberry', 'apple', 'strawberry']
berry_idx = [i for i, item in enumerate(fruit_list) if item.endswith('berry')]
答案 1 :(得分:27)
尝试:
fruit_list = ['raspberry', 'apple', 'strawberry']
[ i for i, word in enumerate(fruit_list) if word.endswith('berry') ]
返回:
[0, 2]
根据您的匹配需求,将endswith
替换为不同的逻辑。
答案 2 :(得分:0)
具有功能:
import re
fruit_list = ['raspberry', 'apple', 'strawberry']
def grep(yourlist, yourstring):
ide = [i for i, item in enumerate(yourlist) if re.search(yourstring, item)]
return ide
grep(fruit_list, "berry$")