gpt4 book ai didi

python - 列表理解用于识别两个列表之间的字符串匹配

转载 作者:行者123 更新时间:2023-12-01 09:22:12 25 4
gpt4 key购买 nike

我使用列表理解来过滤 list_a (一个大列表)中包含 list_b (另一个大列表)中任何字符串的字符串。我已经能够成功使用下面的代码来生成 list_a 中具有此类匹配项的项目列表:

list_a_results = [s for s in list_a if any(xs in s for xs in list_b)]

现在我正在尝试执行我所认为的相反过程,即识别 list_b 中显示在 list_a_results< 中列出的每个字符串中的每个项目。有没有一种巧妙的方法可以使用列表理解来实现此目的?

我想要完成的事情的一个例子:当给出时:

list_a_results = ['abc def ghi jkl', 'mno pqr', 'stu', 'vwx yz']
list_b = ['abc', 'ghi', 'pqr', 'stu', 'vwx', 'yz']

我希望能够生成以下内容:

matches_in_list_a = [['abc', 'ghi'], 'pqr', 'stu', ['vwx','yz']]

最佳答案

几乎是逐字解决方案:对于 B 的每个元素 b,A 的每个元素 a。 a 在 b 中。

# constant depth result
res = [[s for s in list_b if s in a] for a in list_a_results]
# [['abc', 'ghi'], ['pqr'], ['stu'], ['vwx', 'yz']]

# desired output
itr = ([s for s in list_b if s in a] for a in list_a_results)
res2 = [x.pop() if len(x) == 1 else x for x in itr]
# [['abc', 'ghi'], 'pqr', 'stu', ['vwx', 'yz']]

关于python - 列表理解用于识别两个列表之间的字符串匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50727460/

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