У меня есть список строк 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)
Для дальнейшего уточнения: меня интересует простое словарное сравнение по словарю, а не что-нибудь необычное, как Левенштейн или фонетика.
Спасибо