如何创建没有库的计数器?

2024-06-13 20:22:27 发布

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

我想构建一个计数器(只使用“纯”python-->;而不使用库),它包含一个国家/地区名称标签列表,它将字典中识别它,并将与该国家/地区相关的大陆计数

例如:

continent_dict = {'BR': 'America','GEO': 'Asia','JP': 'Asia','SWZ': 'Africa','GER':'Europe','SRB': 'Europe','ARG': 'America'}

名单:

countries = ['PT','ARG','GEO','JP','SRB','BR']

continent_counter = {'America':0, 'Asia':0,'Africa':0,'Europe':0,'Oceania':0} #dictionary that stores the number of occurencies
for country in countries:
    continent_counter[continent_nations_dict[country]] = 1
Max_Continent = max(continent_counter, continent_counter.get)

它得到错误…(可能是我得到最大值的方式?


Tags: brcounterarg国家countriesdict地区geo
2条回答

您可以将数组值“映射”为字典中的大陆列表,并使用“max”计算最频繁的大陆

  c_list=list(countries.map(lambda x: continent_dict[x])
  max( set(c_list), key=c_list.count)

您可以创建一个字典,其中大陆的名称作为键,与每个大陆相关的国家的数量作为值

continent_counter = {'America':0, 'Asia':0,'Africa':0,'Europe':0}#,etc...
for country in countries:
    continent_counter[continent_dict[country]] += 1
Max_Continent = max(continent_counter, key=continent_counter.get)
print(Max_Continent)

如果两个大陆相等(相同且与之相关的国家数量最多),这只会将其中一个作为输出。如果您需要这两个大陆,可以将其添加到前面的代码中:

All_Continents = [] #Creates the list that will contain all the highest 
                    #ranked continents
for key, value in continent_counter.items(): #loop over continent_counter
    if value == continent_counter[Max_Continent]: #if we find a max val
        All_Continents.append(key)                # we append the name of the 
                                                  #continent to the list
print(All_Continents)

相关问题 更多 >