Создать программу, которая добавит вводимые пользователем буквы в словарь в python. - PullRequest
0 голосов
/ 16 октября 2018

Мне нужно написать программу на Python, которая создает пустой словарь букв алфавита.Словарь должен быть заполнен таким образом, чтобы при вводе пользователем любой буквы он добавлялся в словарь в виде ключа (прописные буквы) и значения (строчные буквы).Все буквы словаря должны быть уникальными, то есть дубликаты в словаре не допускаются.Например:

Enter any letters (separated with space): A b C d a
{'A': 'a','B': 'b', 'C': 'c', 'D': 'd'}

Итак, вот мой код:

letter_dictionary = {}
letters = input().split(' ')
for i in letters:
    if i.upper() not in letter_dictionary:
        letter_dictionary[i.upper] = i.lower

print(letter_dictionary)

Но проблема в том, что программа добавляет в словарь не буквы, а функции lower () и upper (), как я видел на pythontutor.com Что я могу с этим сделать?

Ответы [ 2 ]

0 голосов
/ 16 октября 2018

Как уже упоминалось, str.upper и str.lower являются объектами метода , вам нужно следовать за ними в скобках, чтобы фактически применить методы:

for i in letters:
    if i.upper() not in letter_dictionary:
        letter_dictionary[i.upper()] = i.lower()

Но обычный for цикл здесь не требуется.Даже проверка not in letter_dictionary не является строго необходимой, поскольку ключи словаря всегда уникальны.Если вы хотите применить проверку уникальности, просто используйте сначала set для ввода.

Таким образом, вы можете переписать, используя словарь:

letter_diction = {k.upper(): k.lower() for k in set(letters)}    
0 голосов
/ 16 октября 2018

Попробуйте:

letter_dictionary [i.upper ()] = i.lower ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...