2024-05-18 18:22:58 发布
网友
从这两个列表中:
list_A = ["eyes", "clothes", "body" "etc"] list_B = ["xxxx_eyes", "xxx_zzz", "xxxxx_bbbb_zzzz_clothes" ]
我想用第二个列表中的对象填充第三个列表,前提是他的名字的某个部分与第一个列表中的某个名字匹配。你知道吗
在上一个示例中,第三个列表必须是:
["xxxx_eyes", "xxxxx_bbbb_zzzz_clothes"]
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)]
如果要为此使用regex:
尽管Blender的答案在大多数情况下可能已经足够了。你知道吗
如果您想使用列表理解,这将起作用:
相关问题 更多 >
编程相关推荐