Python 3.4 Сопоставление строки со списком строк (в виде ключей из словаря) **без учета регистра**.

Сценарий: у меня есть словарь элементов:

d = {'abcde': 1, 'ETHAN': 2, 'dogsAndcats': 3, 'cat and MOUSE': 4}

Я прошу пользователя ввести одно из четырех ключевых значений словаря d:

user_input = input()

Затем я беру их значение и сверяю его с каждым именем ключа в словаре:

for key in d.keys():
    if user_input == key:
        return True

Давайте предположим, что пользователь несколько дружелюбен и, по крайней мере, вводит правильное написание слов. Но! -В этом вся суть моего вопроса- пользователь не использует правильную заглавную букву.

Как я могу сверить ввод пользователя с моим списком, игнорируя заглавные буквы?

Я пробовал использовать методы регулярных выражений .search и .match. См. код ниже:

def check_value_in_dict(val, d): 
    for k in d.keys():
        if re.search(val, k, re.IGNORECASE):
            return True

Это возвращает true, если пользователь вводит только одну правильную букву в строке. Он не проверяет всю строку, необходимую для моей программы.


person E.Arrowood    schedule 08.12.2015    source источник


Ответы (1)


Просто сделайте:

if user_input.lower() == key.lower()
person aaron_world_traveler    schedule 08.12.2015
comment
По какой-то причине это никогда не приходило мне в голову, и я, честно говоря, не знаю почему. +1 спасибо за помощь - person E.Arrowood; 08.12.2015
comment
Без проблем, с удовольствием! - person aaron_world_traveler; 08.12.2015