Я должен написать программу 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. Что я могу с этим сделать?
Пытаться:
letter_dictionary [i.upper()] = i.lower()
Как уже упоминалось, 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)}
upper
иlower
функций при добавлении в словарь