学习python笔记《python编程快速上手-让繁琐工作自动化》之四

习题四:
你在创建一个好玩的视频游戏。用于对玩家物品清单建模的数据结构是一个字典。其中键是字符串,描述清单中的物品,值是一个整型值,说明玩家有多少该物品。例如,字典值{‘rope’: 1, ‘torch’: 6, ‘gold coin’: 42, ‘dagger’: 1, ‘arrow’: 12}意味着玩家有 1 条绳索、6 个火把、42 枚金币等。

dragonLoot = ['gold coin', 'dagger', 'gold coin', 'gold coin', 'ruby']
dragdic={'rope': 1, 'torch': 6, 'gold coin': 42, 'dagger': 1, 'arrow': 12}

def addtobag(inventory,additems):
	print('物品清单如下:')
	for i in additems:
		num=additems.count(i)#计算列表中物品出现次数
		l_num=inventory.get(i,0)#获得字典中已有物品
		#根据列表中的物品改变字典中的值
		inventory[i]=l_num+num
		#根据字典中值的大小进行排序打印
	for i,k in sorted(inventory.items(),key=lambda x : x[1]):
		print(k,i)
		#用sum()方法计算字典中物品总数
	print('物品总数为:',sum(inventory.values()))
****###考虑更简单的算法****
dragonLoot = ['gold coin', 'dagger', 'gold coin', 'gold coin', 'ruby']
dragdic={'rope': 1, 'torch': 6, 'gold coin': 42, 'dagger': 1, 'arrow': 12}
#更简单的方法
for i in dragonLoot:
	# print(dragdic.get(i,0))
	# print('------------------')
	dragdic[i]= dragdic.get(i,0)+1#每次重新给键赋值,遇到相同则加1,遇到没有的键值则添加。
print(dragdic)
本来想用字典推导来做,但是命名空间问题实现不了重新给键赋值。
发布了23 篇原创文章 · 获赞 5 · 访问量 390

猜你喜欢

转载自blog.csdn.net/weixin_43287121/article/details/104479133