通过lis的每个成员的python正则表达式

2024-05-18 18:22:58 发布

您现在位置:Python中文网/ 问答频道 /正文

从这两个列表中:

list_A = ["eyes", "clothes", "body" "etc"]
list_B = ["xxxx_eyes", "xxx_zzz", "xxxxx_bbbb_zzzz_clothes" ]

我想用第二个列表中的对象填充第三个列表,前提是他的名字的某个部分与第一个列表中的某个名字匹配。你知道吗

在上一个示例中,第三个列表必须是:

["xxxx_eyes", "xxxxx_bbbb_zzzz_clothes"]

Tags: 对象列表etcbody名字listxxxxxxxx
3条回答
In [1]: list_A = ["eyes", "clothes", "body" "etc"]

In [2]: list_B = ["xxxx_eyes", "xxx_zzz", "xxxxx_bbbb_zzzz_clothes" ]

In [7]: [x for x in list_B if any(y in list_A for y in x.split('_'))]
Out[7]: ['xxxx_eyes', 'xxxxx_bbbb_zzzz_clothes']

如果要为此使用regex:

search = re.compile("|".join(map(re.escape, list_A))).search
result = filter(search, list_B)

尽管Blender的答案在大多数情况下可能已经足够了。你知道吗

如果您想使用列表理解,这将起作用:

list_C = [word for word in list_B if any(test in word for test in list_A)]

相关问题 更多 >

    热门问题