如何在没有库的情况下创建计数器?

How to create a counter without libraries?

我想构建一个计数器(仅使用“纯”python -->没有库) 的 列表countries_nametags,它将词典 并计算相关联的大陆country_nametag.

示例:

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)

它得到错误...(可能是我得到max_continent值的方式? )

您可以创建一个字典,将各大洲的名称作为键,将与每个大陆相关联的国家/地区的数量作为值。

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)

您可以 'map' 数组值作为字典中大陆的列表,并使用 'max` 计算最频繁出现的大陆

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