打印特定键最好的方法是什么?

2024-06-01 00:19:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个项目,需要我创建一个country:capital spreadsheet,就像excel中的美国特区一样。问题是,有些关键是大陆和领土,它们没有首都。如何只打印国家

    for ctry in countries:
        print(f'{ctry["name"]:30}{ctry["capitalCity"]}')

结果:

        Middle East & North Africa (IDA & IBRD countries)
        Tonga                         Nuku'alofa
        South Asia (IDA & IBRD)       
        Sub-Saharan Africa (IDA & IBRD countries)
        Trinidad and Tobago           Port-of-Spain

编辑:在阅读评论之后,我意识到我没有包含足够的信息,所以我将尝试在这里填补这些空白。我从世界银行API(http://api.worldbank.org/v2/country?format=json&per_page=400)得到了国家词典,这个列表也包括了大陆和领土。我写了一份if声明

     if ctry['capitalCity'] in ctry:
        print(f'{ctry["name"]:20}{ctry["capitalCity"]}')
    else:
        print('not working')

我在这里的思考过程是,如果我使用'in',if语句将只能打印具有相应值的键,但这不起作用,所以我来到这里。很抱歉没有提供信息,但谢谢你的建议


Tags: namein信息if国家countrycountriesprint
2条回答

从您的问题-><有些关键是大陆和领土,它们没有首都

这意味着你们的国家可能看起来像这样,其中大陆要么有空的资本(如亚洲),没有资本(如澳大利亚)或资本键不存在(如北美)

因此,基于上述假设,所有3个(空,无,无关键)的情况下,在下面列出的国家

countries = [{'name':'India','capitalCity':'New Delhi'},{'name':'US','capitalCity':'Washington'},{'name':'Australia','capitalCity':None},{'name':'Albania','capitalCity': 'Tirana'},{'name':'Algeria','capitalCity':'Algiers'}, {'name':'Angola', 'capitalCity': 'Luanda'},{'name':'Asia','capitalCity': ''}, {'name':'North America'}]

您可以尝试下面的代码跳过大陆/地区

for ctry in countries:
    if ctry.get('capitalCity'):
        print(f'{ctry["name"]:30}{ctry["capitalCity"]}')

假设countries是包含国家、大陆和地区的词典列表,并且这些大陆和地区没有“capitalCity”元素(或者解析为False的元素,比如None):

actual_countries = [c for c in countries if c.get('capitalCity')]

现在,在实际的国家里,一切都是有资本因素的

相关问题 更多 >