codecamp

Python 处理 Dictionary 资料

什么是 Dictionary?

什么是 Dictionary 呢?想了解 Dictionary 之前,可以先想像你现在手上有一本电子英英字典,当你输入英文单字的时候,就可以查得到它的唯一翻译。也就是说,你所关心的 英文单字 与 翻译 之间有著 一对一 的关系。你输入的英文单字,就叫做 Key ;而得到的翻译,就叫做 Value 。一个 Dictionary 是一群 Key : Value 配对的集合。

建立一个 Dictionary 物件

建立一个 Dictionary 物件其实很简单,让我们先看个例子:

d = {'python': 'Large constricting snakes.', 'ruby': 'A precious stone that is a red corundum.'}

当 Python 直译器执行这段程式后,Dictionary 物件就生成了。'python' 这个字串,在上例中即扮演 Key 的角色,而 'Large constricting snakes.' 这个字串,则扮演 Value 的角色。而 Key : Value 之间以冒号 : 间隔之,如果有好几对 Key : Value,则以逗号 , 间隔之。

当我们使用 [] 这个运算子的时候,我们就可以拿到它的 Value 了

print d['python']

则会印出

Large constricting snakes.

取得 Dictionary 物件中 Key 的个数

有的时候会想要知道 Dictionary 物件中,到底有几对 Key, Value ,就如同取得字串的长度般,只要使用 len(d) 即可得到之。

print len(d)

则会印出

2

新增或修改一笔资料

假设我们有新的单字出现了,想要新增到刚才的 Dictionary 物件中,该如何做呢? 同样地,也是使用 []这个运算子,这次还要配合上 = 这个运算子。

d['game'] = 'Activity engaged in for diversion or amusement.'
print d

则会印出

{'python': 'Large constricting snakes.', 'game': 'Activity engaged in for diver
ion or amusement.', 'ruby': 'A precious stone that is a red corundum.'}

我们可以发现, d 这个物件中的确新增了一笔资料。

又假设我们想要修改某个单字的翻译,也是用样使用 [] 这个运算子并要配合上 = 这个运算子:

d['python'] = 'A very powerful scripting language.'
print d

则会印出

{'python': 'A very powerful scripting language.', 'game': 'Activity engaged in for diver
ion or amusement.', 'ruby': 'A precious stone that is a red corundum.'}

我们可以发现, 原来的 python 这个单字所对应到的翻译已经被改变了。

删除一笔资料

假设我们现在要移除一个单字及其翻译,我们可以利用 del 来达成这个目的。

del d['game']
print d

则会印出

{'python': 'A very powerful scripting language.', 'ruby': 'A precious stone that is a red corundum.'}

如此一来,'game' 这笔资料就被你删除了。


试试看

  1. 假使你输入 print d['never_seen'] 其中, 'never_seen' 并不在 Dictionary 之中,会发生什么事呢?
  2. 试输入
    print 'python' in d
    print 'never_seen' in d
    

    并观察他们的不同之处。


下一步...

我们已经学会如何使用 Dictionary 来建立物件之间的一对一关系了,下一节将介绍如何使用 if 来做有条件地执行某些程式。


Python 处理 List 及 Tuple 资料
Python 控制程式执行流程
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }