我必须编写一个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上看到的那样 我该怎么办?
答案 0 :(得分:2)
尝试:
letter_dictionary [i.upper()] = i.lower()
答案 1 :(得分:0)
如上所述,str.upper
和str.lower
是method objects,您需要在括号后加上括号以实际应用方法:
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)}