gpt4 book ai didi

python - 如何使用 python 删除包含特定模式的列表的元素?

转载 作者:太空宇宙 更新时间:2023-11-04 08:05:15 30 4
gpt4 key购买 nike

给定一个字符串列表

listA=['a', 'b', 'a@b=c', 'a @ b = c', 'a@ =b', 'a@=b' 'a=b@c', 'a@b' ]
^ ^

我们要去掉标有“^”的元素,得到

ListB=['a', 'b', 'a@ =b', 'a@=b' 'a=b@c', 'a@b']

这里我们删除了所有包含“@”的元素,后跟一些字符,然后是“=”,但忽略了“@=”或“@=”

如何为 python 列表做这样的正则表达式匹配?

编辑:

我知道如果我们知道要删除的元素的特定索引,我们可以使用 numpy.delete(list, index) 来删除它。但在这种情况下并非如此。

最佳答案

可以使用 re 在 python 中进行正则表达式搜索。模块;具体来说,re.search('@\w=', my_string)不会是None如果my_string包含 @和一个 =\w的成员分开,即一个单词字符(字母数字和 _ )。

我使用 \s 将其扩展到包括也有空格的情况.

import re

listA = ['a', 'b', 'a@b=c', 'a @ b = c', 'a@ =b', 'a@=b' 'a=b@c', 'a@b' ]
listB = [a for a in listA if not re.search('@\s*\w+\s*=', a)]

更新:上面的解决方案现在使用 \w+匹配多个单词字符而不是一个。

关于python - 如何使用 python 删除包含特定模式的列表的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32383841/

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