如何在python defaultdict中计算特定键中的值数量

时间:2019-10-16 10:00:15

标签: python dictionary

我正在尝试完成这个问题。我不知道我要去哪里错了。

  

输入的第一行是一个数字,表示有多少对   单词将跟随(每对在单独的行中)。这对是   表格COUNTRY CITY,指定城市位于哪个国家/地区。的   最后一行是城市的名称。打印城市数量   与这个城市位于同一国家。

     

提示。使用字典。

例如,在输入时:

6
UK London
US Boston
UK Manchester
UK Leeds
US Dallas
Russia Moscow
Manchester

输出必须是: 3

from collections import defaultdict

n=input()
d=defaultdict(list)
city=' '



 for i in range(0,int(n)):
  kv=input().split()
  d[kv[0]].append(kv[1])




 for k1,v1 in d.items():
 if v1==city:
   print(len(k1))

2 个答案:

答案 0 :(得分:1)

您错过了城市的输入 而且您需要检查城市是否在列表中,然后才算有多少

from collections import defaultdict

n=input()
d=defaultdict(list)
city=' '



for i in range(0,int(n)):
  kv=input().split()
  d[kv[0]].append(kv[1])



city = input('Enter a city')
for k1,v1 in d.items():
 if city in v1:
   print(len(v1))

答案 1 :(得分:0)

就像提到的其他人一样,您也需要为查询城市输入信息。另外,您可以采用不同的方法-不需要defaultdict。由于您的查询是一个城市,因此让我们将其存储为字典中的关键字,其值为国家/地区。然后,我们可以找到需要到达的国家。之后,只需要在字典中计算该国家/地区的值即可。

n = input()
city_to_country = {}

for i in range(0, int(n)):
    kv = input().split()
    city_to_country[kv[1].rstrip()] = kv[0]

query_city = input()

target_country = city_to_country[query_city]

print(list(city_to_country.values()).count(target_country))