Python 字符串键值对的Dict

Python 字符串键值对的Dict,python,string,loops,dictionary,Python,String,Loops,Dictionary,我有一个国家和首都的列表,我想把它们转换成dict。这里,key和value都是字符串 from countrygroups import EUROPEAN_UNION from countryinfo import CountryInfo countries = EUROPEAN_UNION.names print(countries) ['Austria', 'Belgium', 'Bulgaria', 'Croatia', 'Cyprus', 'Czechia', 'Denmark',

我有一个国家和首都的列表,我想把它们转换成dict。这里,key和value都是字符串

from countrygroups import EUROPEAN_UNION
from countryinfo import CountryInfo

countries = EUROPEAN_UNION.names
print(countries)

['Austria', 'Belgium', 'Bulgaria', 'Croatia', 'Cyprus', 'Czechia', 'Denmark', 'Estonia', 'Finland', 'France', 'Germany', 'Greece', 'Hungary', 'Ireland', 'Italy', 'Latvia', 'Lithuania', 'Luxembourg', 'Malta', 'Netherlands', 'Poland', 'Portugal', 'Romania', 'Slovakia', 'Slovenia', 'Spain', 'Sweden', 'United Kingdom']
下面的代码将为每个国家打印
country:capital
,但是如何从Python3中的这些键值对构造dict呢

for country in countries:
    if country == 'Czechia':
        country = 'Czech Republic'
    cinfo = CountryInfo(country)
    print(country  + ' : ' + cinfo.capital())


Austria : Vienna
Belgium : Brussels
Bulgaria : Sofia
Croatia : Zagreb
Cyprus : Nicosia
...

将for循环替换为以下内容:

countries\u dict={}
对于国家中的国家:
如果国家==‘捷克’:
国家=‘捷克共和国’
cinfo=国家信息(国家)
国家_dict[国家]=cinfo.capital()
打印(国家+':'+cinfo.capital())

您应该分别修复错误的数据(国家名称)。然后使用词典理解来构建词典:

countries[countries.index('Czechia')]  = 'Czech Republic' # fix input data
dictionary = { country:CountryInfo(country).capital() for country in countries }

您的[country]=cinfo.capital()