字典
字典类似于你通过联系人名字查找地址和联系人详细情况的地址簿,即,我们把键(名字)和值(详细情况)联系在一起。注意,键必须是唯一的,就像如果有两个人恰巧同名的话,你无法找到正确的信息。
注意,你只能使用不可变的对象(比如字符串)来作为字典的键,但是你可以不可变或可变的对象作为字典的值。基本说来就是,你应该只使用简单的对象作为键。
创建 dict
方法一
创建一个空的dict,这个空dict,可以在以后向里面加东西用。
>>> mydict = {}
>>> mydict
{}
>>> type(mydict)
<type 'dict'>
>>>
往这个字典中添加元素。
>>> mydict['myname'] = 'ping'
>>> mydict['mysex'] = 'male'
>>> mydict['myweight'] = 120
>>> mydict
{'myname': 'ping', 'myweight': 120, 'mysex': 'male'}
字典是否可以修改?
>>> id(mydict)
94782784
>>> mydict['myhaircolor'] = 'black'
>>> mydict
{'myhaircolor': 'black', 'myname': 'ping', 'myweight': 120, 'mysex': 'male'}
>>> id(mydict)
94782784
答案是 positive
方法二
利用元组在建构字典,方法如下:
>>> name = (["first","Google"],["second","Yahoo"])
>>> website = dict(name)
>>> website
{'second': 'Yahoo', 'first': 'Google'}
或者用这样的方法:
>>> ad = dict(name = "qiwsir", age = 42)
>>> ad
{'age': 42, 'name': 'qiwsir'}
访问dict的值
dict数据类型是以键值对的形式存储数据的,所以,只要知道键,就能得到值。这本质上就是一种映射关系。
既然是映射,就可以通过字典的“键”找到相应的“值”。
>>> mydict
{'myhaircolor': 'black', 'myname': 'ping', 'myweight': 120, 'mysex': 'male'}
>>> mydict['myhaircolor']
'black'
既然dict是键值对的映射,就不用考虑所谓“排序”问题了,只要通过键就能找到值,至于这个键值对位置在哪里就不用考虑了
基本操作
字典虽然跟列表有很大的区别,但是依然有不少类似的地方。它的基本操作:
- len(d),返回字典(d)中的键值对的数量
- d[key],返回字典(d)中的键(key)的值
- d[key]=value,将值(value)赋给字典(d)中的键(key)
- del d[key],删除字典(d)的键(key)项(将该键值对删除)
- key in d,检查字典(d)中是否含有键为key的项
字典方法
- copy
- clear
- get,setdefault
- items/iteritems, keys/iterkeys, values/itervalues
- pop, popitem
- update
- has_key