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'類型? –