在python中搜索字符串列表

时间:2011-05-10 02:41:50

标签: python

我想从我的列表中搜索国家/地区,这是我的列表:

 country=['American Samoa',
 'Andorra','Angola','Anguilla'
 ,'Antarctica',' Barbuda',
 'Argentina', 'Armenia', 'Aruba',
 'Australia',
 'Austria','Azerbaijan’,'Bahamas','Bangladesh','Barbados','BELARUS']

我使用过这个功能,但我认为这是错误的

def find(f,seq):
    for item in country:
        if f(item):
            return item

请你纠正我的代码 任何帮助将不胜感激

4 个答案:

答案 0 :(得分:5)

嗯,这是一个可能更清楚的刺痛:

def country_found(country_to_find):
    countries=['American Samoa','Andorra','Angola','Anguilla','Antarctica',
    'Barbuda','Argentina', 'Armenia', 'Aruba','Australia', 'Austria','Azerbaijan’,
    'Bahamas','Bangladesh','Barbados','BELARUS']

    return (country_to_find in countries)

然后你可以说“if country_found('Armenia'):”或者其他什么。

答案 1 :(得分:0)

我认为你可以使用

countries = ['American Samoa', ...]
if country in countries:
    ...

答案 2 :(得分:0)

您需要的是

filter(f,seq)

就是这样。

如果你不知道什么是 f ,很遗憾,但我们无法猜到它。

另见iflter()

当你需要做一些相当通用的东西时,在脑海中搜索这个想法:“必须有一些功能可以做我想要的,它在哪里?”

而不是“如何做到这一点?”。

答案 3 :(得分:0)

又一个答案。逻辑是基本的。如果item在列表中,它也有一个索引。使用此索引(list[index])访问元素将返回此项:)

def find_country(country):
    try:
        i = countries.index(country)
        res = countries[res]
    except:
        res = "No such country"

    return res



$ python find_country.py 
Azerbaijan
Angola
No such country