gpt4 book ai didi

python - 将列表与列表进行比较以获取与我们正在比较的列表最接近匹配的列表

转载 作者:太空宇宙 更新时间:2023-11-03 13:39:52 24 4
gpt4 key购买 nike

我有一个列表 a = ["c","o","m","p","a","r","e"]。我有两个列表

b = ["c","l","o","m","p","a","r","e"]c =["c","o","m","p","a","e","r"]

现在我想将列表'b'和'c'与'a'进行比较,以查看'b'的元素顺序更接近'a'还是'c'的元素顺序更接近并返回列表。我想要实现的是在将“b”和“c”与“a”进行比较时返回列表“b”。有这样的功能吗?

最佳答案

difflib.SequenceMatcher会发现

the longest contiguous matching subsequence that contains no "junk" elements

SequenceMatcher.ratio返回序列相似性的度量。它是 [0, 1] 范围内的一个 float 。较高的比率表示较高的相似性(如果给定序列相同,则该比率为 1)。

下面的辅助函数使用 max将第一个参数与其余位置参数进行比较的函数:

def closest(seq, *args):
# Cache information about `seq`.
# We only really need to change one sequence.
sm = SequenceMatcher(b=seq)
def _ratio(x):
sm.set_seq1(x)
return sm.ratio()
return max(args, key=_ratio)

例子:

In [37]: closest(
....: ['c', 'o', 'm', 'p', 'a', 'r', 'e'], # a
....: ['c', 'l', 'o', 'm', 'p', 'a', 'r', 'e'], # b
....: ['c', 'o', 'm', 'p', 'a', 'e', 'r'] # c
....: )
Out[37]: ['c', 'l', 'o', 'm', 'p', 'a', 'r', 'e'] # b

关于python - 将列表与列表进行比较以获取与我们正在比较的列表最接近匹配的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33453641/

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