需要迭代字典才能找到字符串片段

时间:2013-07-17 18:18:21

标签: python dictionary

我有一个函数接受字典作为参数(从另一个有效的函数返回)。这个函数应该要求输入一个字符串,并查看字典中的每个元素,看看它是否在那里。字典基本上是三字母缩写:国家,即AFG:阿富汗等等。如果我将'sta'作为我的字符串,它应该将任何具有该团队STATY,AfghaniSTAn,coSTA rica等片段的国家附加到初始化的空列表中,然后返回所述列表。否则,它返回[未找到]。返回列表应如下所示:[['Code','Country'],['USA','United States'],['CRI','Costa Rica'],['AFG','Afganistan']]这是我的代码到目前为止的样子:

def findCode(countries):
    some_strng = input("Give me a country to search for using a three letter acronym: ")
    reference =['Code','Country']
    code_country= [reference]
    for key in countries:
        if some_strng in countries:
            code_country.append([key,countries[key]])
    if not(some_strng in countries):
        code_country.append( ['NOT FOUND'])
    print (code_country)
    return code_country

我的代码只是不断返回['NOT FOUND']

1 个答案:

答案 0 :(得分:5)

您的代码:

for key in countries:
    if some_strng in countries:
        code_country.append([key,countries[key]])

应该是:

for key,value in countries.iteritems():
    if some_strng in value:
        code_country.append([key,countries[key]])

您需要检查字符串的每个值,假设您的国家/地区位于值而不是键中。

也是你的最终回复声明:

if not(some_strng in countries):
    code_country.append( ['NOT FOUND'])

应该是这样的,有很多方法可以检查:

if len(code_country) == 1
  code_country.append( ['NOT FOUND'])