我有一个Python列表的字符串,例如初始化如下:在Python列表中查找“最接近”的字符串(按字母顺序)
l = ['aardvark', 'cat', 'dog', 'fish', 'tiger', 'zebra']
我想测试的此列表中输入字符串,并找到“它下面的最接近字符串”和“上面最接近字符串”,按字母顺序和不区分大小写(即没有语音,只是a<b
等)。如果输入存在于列表中,则“下方”和“上方”应该返回输入。
几个例子:
Input | Below | Above
-------------------------------
bat | aardvark | cat
aaa | None | aardvark
ferret | dog | fish
dog | dog | dog
什么是用Python实现这一目标的最巧妙的方法? (目前我使用for循环迭代排序列表)
为了进一步阐明:我对简单的字典字母比较感兴趣,而不是任何像Levenshtein或语音那样的花式。
感谢
+1的清洁解决方案,而且名称选择:) – 2009-08-24 15:25:46
你需要采取在列表为空的情况下照顾: 如果index == 0: 左=无 其他: 左=草垛[指数1] 如果index == LEN(干草堆): 右=无 其他: 右=草垛[指数] 回左,右 – tonfa 2009-08-24 15:29:15
对不起,我认为这是可能把代码中的注释。 – tonfa 2009-08-24 15:29:55