检查字典键和值

时间:2016-03-30 01:21:04

标签: python

我正在尝试编写一个功能, 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

最好的方法是什么?

3 个答案:

答案 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将采用两个参数:statecity。第二行和第三行构成if语句。仅当if语句中的表达式为if时,才会执行第三行(True语句的正文)。

state not in d不在字典True的键中时,<{stated

最后一行返回TrueFalse,具体取决于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