如何引用传递给函数的字典键?

时间:2014-12-11 22:57:37

标签: python function dictionary

假设我有一个这样的词典:

phone_numbers = {'Ted': '555-222-1234', 'Sally': '555-867-5309'}

我想要返回键和传递给它的值的函数,例如:

>>> phonebook(phone_number['Ted'])
Ted's phone number is: 555-222-1234

在伪代码中,函数将是:

def phonebook(number): 
    print("{}'s phone number is: {}".format(
        number.key(),  # Not a real dictionary method!
        number.value())  # Also not a real dictionary method!

有没有办法在没有大量后端重写类型和类的情况下执行此操作?

2 个答案:

答案 0 :(得分:4)

您需要传递要查找的字典和名称:

>>> phone_numbers = {'Ted': '555-222-1234', 'Sally': '555-867-5309'}
>>> def phonebook(dct, name):
...     print("{}'s phone number is: {}".format(name, dct[name]))
...
>>> phonebook(phone_numbers, 'Ted')
Ted's phone number is: 555-222-1234
>>>

执行phone_number['Ted']只会返回与字典中的密钥'Ted'关联的字符串电话号码。意思是,没有办法将这个字符串追溯到它来自的字典。

答案 1 :(得分:-1)

这是你的答案:

def phonebook(phonenumber):
    for name, number in phone_numbers.items():
        if(number = phonenumber):
            print("{}'s phone number is: {}".format(name, number)
            return