gpt4 book ai didi

python - 正则表达式搜索列表,但返回相同大小的列表

转载 作者:行者123 更新时间:2023-12-04 14:31:13 26 4
gpt4 key购买 nike

与此问题类似:Regular Expressions: Search in list
但我想返回一个与搜索列表大小相同的列表,None''没有匹配项的地方:

import re

mylist = ["dog", "cat", "wildcat", "thundercat", "cow", "hooo"]
r = re.compile(".*cat")
list(filter(r.match, mylist))

# looking for ["", "cat", "wildcat", "thundercat", "", ""]
我尝试删除 filter但这会返回整个列表
也试过
[r.match(x) for x in mylist]
但这会返回:
[None,
<regex.Match object; span=(0, 3), match='cat'>,
<regex.Match object; span=(0, 7), match='wildcat'>,
<regex.Match object; span=(0, 10), match='thundercat'>,
None,
None]
我不知道如何提取字符串 .group(0)None 引发错误
任何一种方法都有效,优先选择更快/更有效的方法,因为列表会很长

最佳答案

非正则表达式解决方案也应该没问题。
如果您希望字符串以 cat 结尾,您可以使用 str.endswith :

>>> [x if x.endswith('cat') else '' for x in mylist]
['', 'cat', 'wildcat', 'thundercat', '', '']
cat可以出现在字符串的任何位置,可以使用 in运算符(operator):
>>> [x if 'cat' in x else '' for x in mylist]
['', 'cat', 'wildcat', 'thundercat', '', '']

关于python - 正则表达式搜索列表,但返回相同大小的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68744239/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com