我必须使用填充了元组的列表创建字典。每个元组应该是一对,例如(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'不在列表中”。我究竟做错了什么?
答案 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()