本篇内容介绍了“python字典和结构化数据实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
字典的索引可以使用许多不同类型的数据,不只是整数。字典的索引被称为“键”,键及其关联的值称为“键—值”对,在代码中,字典输入时带花括号{}。
字典中的表项是不排序的,所以字典不能像列表那样切片。
keys()、values()和items()方法
key()、values()和items()方法将返回类似于列表的值,分别对应于字典的键、值和键-值对。这些方法返回的值不是真正的列表,他们不能被修改,没有append()方法。但这些数据类型可以用于for循环。
>>> spam = {'color':'red','age':42} >>> for i in spam.values():print (i) red 42
可以通过list()方法将字典转换为列表
>>> list(spam.keys()) ['color', 'age'] >>> list(spam.values()) ['red', 42] >>> spam {'color': 'red', 'age': 42}
get()方法有两个参数:要取得其值的键,以及如果该键不存在时,返回的备用值
setdefault()方法提供了一种方式,传递给该方法的第一个参数,是要检查的键,第二个参数,是如果该键不存在时要设置的值。如果该键存在就返回键值。
如果程序中导入了pprint()模块,就可以使用pprint()和pformat()打印字典。
import pprint message = 'It was a bright cold day in April, and the clocks were striking thirteen.'count = {}for character in message: count.setdefault(character, 0) count[character] = count[character] + 1print(pprint.pformat(count))#pprint.pprint(count) print(pprint.pformat(count))这两种表达式等价
运行结果:
{' ': 13,',': 1,'.': 1,'A': 1,'I': 1,'a': 4,'b': 1,'c': 3,'d': 3,'e': 5,'g': 2,'h': 3,'i': 6,'k': 2,'l': 3,'n': 4,'o': 2,'p': 1,'r': 5,'s': 3,'t': 6,'w': 2,'y': 1}
你在创建一个好玩的视频游戏。用于对玩家物品清单建模的数据结构是一个字典。其中键是字符串,描述清单中的物品,值是一个整型值,说明玩家有多少该物品。例如,字典值{‘rope’: 1, ‘torch’: 6, ‘gold coin’: 42, ‘dagger’: 1,’arrow’: 12}意味着玩家有 1 条绳索、6 个火把、42 枚金币等。 写一个名为displayInventory()的函数,它接受任何可能的物品清单,并显示如下:
Inventory: 1 rop 6 torch 42 gold coin 1 dagger 12 arrow Total number of items : 62
代码如下:
def displayInventory(dic): print('Inventory:') count = 0 for k, v in dic.items(): print(str(v) + ' ' + k) count = v+count print('Total number of items : ', count) dicValue = {'rop': 1, 'torch': 6, 'gold coin': 42, 'dagger': 1, 'arrow': 12} displayInventory(dicValue)
dragonLoot = ['gold coin', 'digger', 'gold coin', 'gold coin', 'ruby']
写一个名为 addToInventory(inventory, addedItems)的函数,其中 inventory 参数 是一个字典,表示玩家的物品清单(像前面项目一样),addedItems 参数是一个列表, 就像 dragonLoot。 addToInventory()函数应该返回一个字典,表示更新过的物品清单。
def displayInventory(dic): print('Inventory:') count = 0 for k, v in dic.items(): print(str(v) + ' ' + k) count = v+count print('Total number of items : ', count) def addToInventory(inventory, addeditems): for i in addeditems: if i in inventory.keys(): inventory[i] += 1 else: inventory.setdefault(i, 1) return inventory inv = {'gold coin':42, 'rope':1} dragonLoot = ['gold coin', 'digger', 'gold coin', 'gold coin', 'ruby'] inv = addToInventory(inv,dragonLoot) displayInventory(inv)
前面的程序(加上前一个项目中的 displayInventory()函数)将输出如下:
Inventory: 45 gold coin 1 rope 1 digger 1 ruby Total number of items : 48
“python字典和结构化数据实例分析”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。