我有一個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