我正在尝试编写一个功能, is_capital(州,市),用于检查城市是否是州的首府。如果是大写,则返回true,否则返回false。如果州或城市不在字典中,那么它也必须返回False。这是字典:
d = {"New South Wales": "Sydney",
"Queensland": "Brisbane",
"South Australia": "Adelaide",
"Tasmania": "Hobart",
"Victoria": "Melbourne",
"Western Australia": "Perth"}
我希望它返回的一些例子是:
>>>print(state_capital("Victoria", "Melbourne"))
True
>>>print(state_capital("Queensland", "Adelaide"))
False
最好的方法是什么?
答案 0 :(得分:3)
"短"答案
def is_capital(state,city):
return d.get(state,None) == city
甚至更短(因为默认为None
)
def is_capital(state,city):
return d.get(state) == city
答案 1 :(得分:2)
def is_capital(state, city):
if state not in d:
return False
return d[state] == city
第一行是函数头。它指定函数is_capital
将采用两个参数:state
和city
。第二行和第三行构成if
语句。仅当if
语句中的表达式为if
时,才会执行第三行(True
语句的正文)。
state not in d
不在字典True
的键中时,<{state
为d
。
最后一行返回True
或False
,具体取决于d[state] == city
的值。 d[state]
获取与密钥d
关联的字典state
中的值。
答案 2 :(得分:2)
def is_capital(state, city):
'''checks whether state in dict keys and city equals to state's corresponding value'''
return True if state in d and d[state] == city else False