【发布时间】:2017-04-22 16:37:10
【问题描述】:
鉴于此字典格式:
名称:(id,type1,type2,hp,攻击,防御,速度,世代,传奇)
dict={'Bulbasaur': (1, '草', '毒药', 45, 49, 49, 45, 1, False)}
我需要浏览数据库(多个口袋妖怪的字典,其统计数据采用提供的格式)并找到哪些口袋妖怪具有传奇地位,这是一个布尔值。我需要数出传说中的类型并将它们放入新字典中。
例如,如果 Bulbasaur 是传奇人物,草类型=1 毒类型=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)
【问题讨论】:
标签: python-3.x dictionary key