首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用while循环帮助索引/查找与字符串语句匹配的元素

如何使用while循环帮助索引/查找与字符串语句匹配的元素
EN

Stack Overflow用户
提问于 2021-10-21 02:26:17
回答 1查看 65关注 0票数 1

我正在尝试创建一个接受参数的函数,该参数是一个国家,并为该国家定位相邻的首都。例如:

代码语言:javascript
复制
countries_and_capitals = (['Afghanistan', 'Kabul'], ['Albania', 'Tirana (Tirane)'], ['Algeria', 'Algiers'], ['Andorra', 'Andorra la Vella'],
['Angola', 'Luanda'], ['Antigua and Barbuda', "Saint John's"], ['Argentina', 'Buenos Aires'],
['Armenia', 'Yerevan'],
['Australia', 'Canberra']

def get_capital_from_the_country(cntry)

并在您输入国家/地区后显示首都。

EN

Stack Overflow用户

发布于 2021-10-21 02:32:34

一种方法是使用for循环遍历元组,同时解包两个值(country和capital),如果找到与参数匹配的国家,则返回资本,如果没有找到国家,则返回消息(此方法速度更快):

代码语言:javascript
复制
countries_and_capitals = (['Afghanistan', 'Kabul'], ['Albania', 'Tirana (Tirane)'], ['Algeria', 'Algiers'], ['Andorra', 'Andorra la Vella'],
['Angola', 'Luanda'], ['Antigua and Barbuda', "Saint John's"], ['Argentina', 'Buenos Aires'],
['Armenia', 'Yerevan'],
['Australia', 'Canberra'])


def get_capital_from_the_country(cntry):
    cntry = cntry.lower()
    for country, capital in countries_and_capitals:
        if country.lower() == cntry:
            return capital
    return 'Can\'t find that country'


print(get_capital_from_the_country('Afghanistan'))
# Kabul
print(get_capital_from_the_country('Afghanista'))
# Can't find that country
print(get_capital_from_the_country('afghanistan'))
# Kabul
print(get_capital_from_the_country('aFgHaniStan'))
# Kabul

另一种方法是将该元组转换为字典,然后通过使用.get (返回特定消息而不是引发KeyError)轻松访问键(国家)的值(大写):

代码语言:javascript
复制
def get_capital_from_the_country(cntry):
    dct = {k.lower(): w for k, w in countries_and_capitals}
    # alternatively can use:
    # dct = dict(map(lambda x: (x[0].lower(), x[1]), countries_and_capitals))
    return dct.get(cntry.lower(), 'Can\'t find that country')
票数 4
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69655108

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档