我正在学习一门关于runestone的python课程,我被以下问题困住了:
提供了一个包含pokemongo玩家数据的字典,每个玩家都会显示他们pokemon的糖果量。如果你把所有的数据汇总在一起,哪个口袋妖怪的糖果数量最多?将pokemon赋给变量most_common_pokemon
。你知道吗
我想的是创建一个字典来合并公共键(和它们的值),或者进行类似的比较
if x>y
x=y
所以我可以得到糖果最多的口袋妖怪
pokemon_go_data = {'bentspoon':
{'Rattata': 203, 'Pidgey':20, 'Drowzee': 89, 'Squirtle': 35, 'Pikachu': 3, 'Eevee': 34, 'Magikarp': 300, 'Paras': 38},
'Laurne':
{'Pidgey': 169, 'Rattata': 245, 'Squirtle': 9, 'Caterpie': 38, 'Weedle': 97, 'Pikachu': 6, 'Nidoran': 44, 'Clefairy': 15, 'Zubat': 79, 'Dratini': 4},
'picklejarlid':
{'Rattata': 32, 'Drowzee': 15, 'Nidoran': 4, 'Bulbasaur': 3, 'Pidgey': 56, 'Weedle': 21, 'Oddish': 18, 'Magmar': 6, 'Spearow': 14},
'professoroak':
{'Charmander': 11, 'Ponyta': 9, 'Rattata': 107, 'Belsprout': 29, 'Seel': 19, 'Pidgey': 93, 'Shellder': 43, 'Drowzee': 245, 'Tauros': 18, 'Lapras': 18}}
pokemon=[]
for i,k in pokemon_go_data.items():
b=k.keys()
b=list(b)
pokemon.append(b)
print (pokemon)
poke=[]
for i in pokemon:
for j in i:
if j not in poke:
poke.append(j)
else:
continue
print(poke)
d={}
n=0
count=[]
total=0
most_common_pokemon=""
for players in pokemon_go_data:
for pokemon in pokemon_go_data[players]:
if pokemon==poke[n]:
count.append(pokemon_go_data[players][pokemon])
counts=sum(count)
print (count)
print(counts)
d[poke[n]]=counts
print (d)
这样它就打印出一个字典:{'Rattata': 587}
但是如果我添加一个类似n+=1
的计数器,我会得到以下结果
{'Rattata': 203, 'Pidgey': 372, 'Drowzee': 387}
如果不是建立一个字典
if count>total:
total=count
most_common_pokemon=poke[n]
n+1=n
我收到一条超出范围的错误信息 我把计数器放在任何地方,但它不工作…而且当我重置计数
谢谢,任何建议都欢迎
这应该做到:
原则上与上述答案基本相同,但实施上略有不同
或者
或者
相关问题 更多 >
编程相关推荐