Python - 通过键显示值的字典

Python - Dictionaries displaying values through keys

对于以下程序:

spanishdays = { 'Sunday':'Domingo', 'Monday':'Lunes', \
                'Tuesday':'Martes', 'Wednesday':'Miercoles', \
                'Thursday':'Jueves', 'Friday':'Viernes', \
                'Saturday':'Sabado' }

ui = input("Enter 'Sunday', 'Monday', 'Tuesday', 'Wednesday'," \
            "'Thursday', 'Friday', 'Saturday': ")

for ui in spanishdays:
    print('The word for ' + ui + ' in Spanish is ' + spanishdays[ui])

我认为输出会是:如果用户输入星期一,则“The word for Monday in Spanish is Lunes

但是,当我 运行 程序时,我得到以下输出:

Enter 'Sunday', 'Monday', 'Tuesday', 'Wednesday','Thursday', 'Friday',
'Saturday': Monday
The word for Sunday in Spanish is Domingo
The word for Monday in Spanish is Lunes
The word for Tuesday in Spanish is Martes
The word for Wednesday in Spanish is Miercoles
The word for Thursday in Spanish is Jueves
The word for Friday in Spanish is Viernes
The word for Saturday in Spanish is Sabado

我怎样才能得到:

The word for Monday in Spanish is Lunes

你不需要一个循环来打印出对应于字典中的键的值。

只需使用spanishdays[ui] 就会return 值对应spanishdays 字典中的键ui。或者,您可以使用 spanishdays.get(ui) 来达到相同的目的,但不会引发 KeyError.

spanishdays = { 'Sunday':'Domingo', 'Monday':'Lunes', \
                'Tuesday':'Martes', 'Wednesday':'Miercoles', \
                'Thursday':'Jueves', 'Friday':'Viernes', \
                'Saturday':'Sabado' }

ui = input("Enter 'Sunday', 'Monday', 'Tuesday', 'Wednesday'," \
            "'Thursday', 'Friday', 'Saturday': ")

print('The word for ' + ui + ' in Spanish is ' + spanishdays[ui])

# Enter 'Sunday', 'Monday', 'Tuesday', 'Wednesday','Thursday', 'Friday', 'Saturday': Monday                               
# The word for Monday in Spanish is Lunes                    

不需要 for 循环,因为您只想获得 dict

的一个值
Python 3.6.5 (default, Mar 30 2018, 06:42:10)
Type 'copyright', 'credits' or 'license' for more information
IPython 6.3.1 -- An enhanced Interactive Python. Type '?' for help.

In [1]: spanishdays = { 'Sunday':'Domingo', 'Monday':'Lunes', \
   ...:                 'Tuesday':'Martes', 'Wednesday':'Miercoles', \
   ...:                 'Thursday':'Jueves', 'Friday':'Viernes', \
   ...:                 'Saturday':'Sabado' }

In [2]: ui = input("Enter 'Sunday', 'Monday', 'Tuesday', 'Wednesday',""'Thursday', 'Friday', 'Saturday': ")
Enter 'Sunday', 'Monday', 'Tuesday', 'Wednesday','Thursday', 'Friday', 'Saturday': Monday

In [3]: print('The word for %s in Spanish is %s '% (ui, spanishdays.get(ui, 'Invalid entry')))
The word for Monday in Spanish is Lunes

In [4]: