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

1

Я должен написать программу 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. Что я могу с этим сделать?

  • 6
    Вы пропускаете скобки upper и lower функций при добавлении в словарь
  • 0
    Черт, я должен быть более осторожным. Спасибо, мужик!
Теги:
dictionary

2 ответа

2

Пытаться:

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

0

Как уже упоминалось, 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)}    

Ещё вопросы

Сообщество Overcoder
Наверх
Меню