gpt4 book ai didi

python - 有效地在字符串列表中搜索 python 中的字符串列表

转载 作者:太空狗 更新时间:2023-10-30 02:49:12 25 4
gpt4 key购买 nike

我有一个字符串列表和一个字符串列表。例如:

L1=[["cat","dog","apple"],["orange","green","red"]]
L2=["cat","red"]

如果 L1[i] 包含 L2 中的任何项目,我需要放置对(用于在图中创建边)比如,在我的示例中,我需要对 ("cat","dog"),("cat,apple"),("red,orange"),("red","green")

我应该使用什么方法来使其最有效。 (我的列表 L1 很大)

最佳答案

假设您的 L1 子列表中可能有多个“控制”项。

我会使用 set() 来做到这一点和 itertools.product() :

from itertools import product

def generate_edges(iterable, control):
edges = []
control_set = set(control)
for e in iterable:
e_set = set(e)
common = e_set & control_set
to_pair = e_set - common
edges.extend(product(to_pair, common))
return edges

例子:

>>> L1 = [["cat","dog","apple"],
... ["orange","green","red"],
... ["hand","cat","red"]]
>>> L2 = ["cat","red"]
>>> generate_edges(L1, L2)
[('apple', 'cat'),
('dog', 'cat'),
('orange', 'red'),
('green', 'red'),
('hand', 'red'),
('hand', 'cat')]

关于python - 有效地在字符串列表中搜索 python 中的字符串列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9316970/

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