0
鉴于这种字典格式:Python更新字典,但需要获得密钥对?
名称:(ID,TYPE1,TYPE2,HP,攻击,防御,速度,一代传奇)
字典= { '妙蛙种子':(1, '草',“毒',45,49,49,45,1,假)}
我需要通过数据库(多个宠物小精灵字典与他们的统计提供的格式),并找到哪个宠物小精灵具有传奇的地位,这是一个布尔值。我需要计算传说中的类型并将它们放入新的字典中。
因此,例如,如果Bulbasaur是传说中的,Grass type = 1 Poison type = 1。新字典项是:
new_dict = {“草”:1,“毒”:1}
我所做的代码来获取类型的提取和再算上那些类型是传奇,但我坚持上如何获得最终字典的类型和计数。
下面是代码,我有:
def legendary_count_of_types(db):
Fire=0
Grass=0
Flying=0
Poison=0
Dragon=0
Water=0
Fighting=0
Ground=0
Ghost=0
Rock=0
Ice=0
d={}
for key,values in db.items():
status=values[8]
if status==True:
type_list=get_types(db)
for item in type_list:
if item=='Fire':
Fire+=1
if item=='Grass':
Grass+=1
if item=='Flying':
Flying+=1
if item=='Poison':
Poison+=1
if item=='Dragon':
Dragon+=1
if item=='Water':
Water+=1
if item=='Fighting':
Fighting+=1
if item=='Ground':
Ground+=1
if item=='Ghost':
Ghost+=1
if item=='Rock':
Rock+=1
if item=='Ice':
Ice+=1
d.update()
#how do I get the key value pair?
return d
这里是我的get_types功能的作用:
def get_types(db):
l=[]
s=[]
for key,values in db.items():
types1=str(values[1])
types2-str(values[2])
l.apppend(types1)
l.append(types2)
for i in l:
if i not in s:
s.append(i)
if 'None' in s:
s.remove('None')
final_list=s
return sorted(final_list)
不幸的是我不允许导入任何模块。 @nimish –
编辑,计数器只是一个有一些增强的字典。 – nimish
如果没有列为类型,则会发生错误。 {'Dragon':1,'Fire':4,None:2,'Flying':[37 chars]':1}!= {'Grass':1,'Fire':4,'Flying':2, 'Poiso [41个字符]':1}我怎样才能过滤'None'类型? –