如果我应用此正则表达式:
re.split(r"(^[^aeiou]+)(?=[aeiouy])", "janu")
在字符串“janu”上,它给出了以下结果:['', 'j', 'anu']
现在,我想在以下列表中应用此正则表达式,以获得上述每个项目的类似结果。是否可以使用for
循环,如果是,可以如何使用?
lista = ['janu', 'manu', 'tanu', 'banu']
答案 0 :(得分:1)
您可以使用list comprehension:
>>> from re import split
>>> lista = ['janu', 'manu', 'tanu', 'banu']
>>> [split("(^[^aeiou]+)(?=[aeiouy])", x)[1]+"doc" for x in lista]
['jdoc', 'mdoc', 'tdoc', 'bdoc']
>>>
关于评论的修改:
这将有效:
>>> from re import split
>>> lista = ['janu', 'manu', 'tanu', 'banu']
>>> listb = []
>>> for item in lista:
... data = split("(^[^aeiou]+)(?=[aeiouy])", item)
... listb.append(data[2]+data[1]+"doc")
...
>>> listb
['anujdoc', 'anumdoc', 'anutdoc', 'anubdoc']
>>>
答案 1 :(得分:0)
使用列表理解
[re.split(r"(^[^aeiou]+)(?=[aeiouy])", i) for i in list]
你可以使用for循环但这被认为是 pythonic 做事的方式。