[python]学习笔记——字典

当我们把一系列值分组到一个结构中,并且通过其序号进行引用,这就是python中我们所说的列表

而当我们通过名字来对值进行引用,这种数据类型我们称之为映射,字典是python中唯一内建的映射类型

字典是无序的

假设现在有一组人名和编号,对其建立一个小型数据库来方便查找,使用列表的时候

1 names = ['Zhang','Wang','Li','Zhao','Liu']
2 numbers = [‘0010’,‘0020’,‘0030’,‘0040’,‘0050’]
3 #检索名字为Li的标号
4 >>>numbers[names.index('Li')]
5 0030

使用字典则可以通过以下方式创建{键:值}:

data = {‘Zhang’:'0010','Wang':'0020','Li':'0030','Zhao':'0040','Liu':'0050'} #字典

使用 dict函数(实际上dict不是真正意义上的函数,它是一个类型,和str,list,tuple一样)

 1 >>>item = [('name','Gumby'),('age',''42)]
 2 >>>d = dict(item)
 3 >>>d
 4 {'age':42 , 'name':'Gumby'}
 5 >>>d['name']
 6 'Gumby'
 7 #或者通过dict()函数来创建字典
 8 >>>d = dict(age = 42 , name = 'Gumby')
 9 >>>d
10 {'age':42 , 'name':'Gumby'}

基本字典操作

len(d)——返回字典d中项的数量({键:值}为一项)

d[k]——返回字典d中键为k所对应的值

d[k]=v——将v关联到字典d中的键k

del d[k]——删除字典d中键为k的项

k in d——检查字典d中是否含有键为k的项

注:(1)字典的键可以为任意不可变类型

      (2)如下

>>> x = []
>>> x[42] = 42
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list assignment index out of range
>>> x = {}
>>> x[42] = 42
>>> x
{42: 42}

字典的方法

1、clear(): 清除字典的所有项

2、copy(): 返回一个具有相同键-值对的新字典

3、fromkey(): 使用给定的键创建新字典,每个键对应默认的值为None

4、get(): 一种更宽松的访问字典的方法,当所访问的键不存在时返回None 可以自定义None值get('key','N/A')

5、has_key(): 检查字典中是否存在所给出的键,返回值为True或者False(python3.0中不再有此方法)

6、items()和iteritems(): 前者把字典所有项以列表方式返回,后者作用大致相同,区别在于后者以迭代器对象返回

7、keys()和iterkeys(): keys()将字典中键以列表方式返回,iterkeys()则返回针对键的迭代器

8、pop(): 获取字典中所给定的键的值,然后将这对键-值从字典中移除

9、popitem(): 方法类似于list.pop(),因为字典是无序的,所以会随机弹出一项,并移除

10、setdefault(): 某种程度上类似于get(),能够获取给定键相关联的值,除此之外还能给字典设立不存在的键-值对

11、update(): 利用一个字典给另外一个字典更新

12、values()和itervalues(): values()一列表的形式返回字典中的值(itervalues()返回值的迭代器),与返回键的列表不同的是返回值的列表可以包含重复元素

 

posted @ 2014-03-12 09:58  Crazystonely  阅读(191)  评论(0编辑  收藏  举报