如何扫描数组中与查询词具有最长共享前缀的元素?

How to scan for elements in the array that have the longest shared prefix with the query term?

我在 python 中有一个数组,看起来像这样 ['u1jr00', 'u1jr01', 'u1jr02', 'u1jr03', 'u1jr04', 'u1jr05', 'u1jr06','u1jrbjk']。我试图在这个数组中找到与查询中的这个字符串紧密匹配的元素 u1jrbjvnrqz7。我如何扫描整个数组并找到与查询字符串匹配的最常见前缀的元素? python 中是否有用于公共前缀匹配的内置函数?

这里有一条线:

items = ["abc", "abcd", "abcde", "zasd"]
query = "abcd"
best_match = max((os.path.commonprefix([item, query]), item) for item in items)[1]

这会平等对待所有具有相同长度公共前缀的项目。如果你想要更小的:

best_match = max((os.path.commonprefix([item, query]), -len(item), item) for item in items)[2]