Python:如何用正则表达式获取列表索引?
在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')
有没有人有什么好主意?
3 个回答
3
这里提到的是一个函数:
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$")
71
使用正则表达式:
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')]
33
试试这个:
fruit_list = ['raspberry', 'apple', 'strawberry']
[ i for i, word in enumerate(fruit_list) if word.endswith('berry') ]
返回结果:
[0, 2]
根据你的匹配需求,把 endswith
换成其他的逻辑。