试图在python中创建一个查找函数

时间:2015-10-18 18:18:37

标签: python python-2.7

我必须使用填充了元组的列表创建字典。每个元组应该是一对,例如(word,description_of_said_word)。 到目前为止,我有这个:

banana = ("banana", "a yellow fruit")
orange = ("orange", "a orange fruit")
apple = ("apple", "a green fruit") 
my_list = [banana, orange, apple]

def lookup():
    word = raw_input("Word to lookup: ")
    print ("\n")
    n = my_list.index(word)
    x = my_list[n][0]
    y = my_list[n][1]
    if word == x:
       print x, ":", y, "\n"
    else:
       print("That word does not exist in the dictionary")
lookup()

当我用香蕉写字时,我收到一条错误,上面写着“ValueError:'banana'不在列表中”。我究竟做错了什么?

2 个答案:

答案 0 :(得分:1)

"banana"不在my_list中。 ("banana","a yellow fruit")是。这些是不同的对象。

如果您改为使用my_dict = dict([banana,orange,apple]),您将获得一个真实的词典,其中"banana"是一个键,而my_dict["banana"]会给您"a yellow fruit"

在此处阅读更多内容:https://docs.python.org/2/library/stdtypes.html#mapping-types-dict

答案 1 :(得分:1)

执行此操作的一种方法是遍历元组列表,并将输入字与每个元组中的第一个项进行比较。如果匹配,则打印并返回。如果它通过整个列表而没有找到匹配项,那么让用户知道该单词不存在。

banana = ("banana", "a yellow fruit")
orange = ("orange", "a orange fruit")
apple = ("apple", "a green fruit") 
my_list = [banana, orange, apple]

def lookup():
    word = raw_input("Word to lookup: ")
    print ("\n")
    for fruit in my_list:
        if fruit[0] == word:
            print fruit[0], ":", fruit[1], "\n"
            return
    print("That word does not exist in the dictionary")
lookup()