擅长:python、mysql、java
<p>这正是等分模块的用途。它将比仅仅迭代大型列表快得多。在</p>
<pre><code>import bisect
def closest(haystack, needle):
if len(haystack) == 0: return None, None
index = bisect.bisect_left(haystack, needle)
if index == 0:
return None, haystack[0]
if index == len(haystack):
return haystack[index], None
if haystack[index] == needle:
return haystack[index], haystack[index]
return haystack[index-1], haystack[index]
</code></pre>
<p>上面的代码假设您已经将输入和列表清理为大写或小写。另外,我是在我的iPhone上写的,所以请检查是否有错别字。在</p>