Python笔记04-字典

【字典】—— 当索引不好用时。

映射:通过名字引用值得数据结构。字典是Python中唯一内建的映射类型。

回忆之前的列表,假设有一个“人名列表” names 和 一个“电话号码列表” numbers.要查找某个人的电话:

【创建和使用字典】

[个人理解]Python中的“字典”就像是PHP中的“数组”,或者“json”,就是一个一个的键值对。

phonebook = {'zhang':'111', 'wang':'222', 'zhao':'333'}

◆ 可以用dict 函数,通过其他映射,或者(键,值) 这样的序列对 建立字典。

也可以通过关键字参数创建字典:

【字典的操作】 —— 与“序列”很类似。

(1)字典的键不一定是整数类型,可以是任何不可变的类型(比如:浮点型、字符串、元组)

(2)字典可以自动添加(类似PHP的数组)

(3)表达式 k in d(d为字典) 查找的是键 而不是值,表达式 v in l(l为列表) 查找的是值 而不是索引。

◆ 注意区别空的列表 和 空的字典:

【字典的格式化字符串】

◆ 使用字典的格式化字符串用来 替换HTML的模板(非常有用)

【字典方法】

(1)clear方法:清除字典中所有的项,无返回值。

(2)copy方法:返回一个具有相同 key-value 的新字典。

[说明] 这个方法实现的是 浅复制 (shallow copy),因为值本身就是相同的,而不是副本。

当副本替换值,原始字典不受影响。但如果修改了某个值,原始字典也会改变。

避免这一问题的方法就是:深复制(deep copy),使用copy模块的deepcopy函数来完成:

(3)fromkeys方法:使用给定的key建立新的字典,每个key默认对应的value为None。

(4)get方法:一般情况下,访问字典中不存在的项时会出错,但使用get就不会:

(5)has_key方法:检查字典中是否包含给出的key,返回布尔。表达式 d.has_key(k) 相当于 k in d.

(6)items 和 iteritems:将所有的字典项以列表方式返回,但返回时没有特殊的顺序。

iteritems 大致相同,但是会返回一个迭代器对象,而不是列表。很多情况下都会使用iteritems更高效。

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

(8)pop方法:获得对应于给定键的值,然后将这个key-value从字典中移除。

(9)popitem方法:弹出列表中的随机的项。

[说明] 此方法 类似list.pop,区别在于 list.pop 会弹出列表的最后一个元素。

(10)setdefault方法:类似get方法。能够获得与给定键相关联的值,还能在字典中不含有给定键的情况下设定相应的键值。

 

(11)update方法:利用一个字典项更新另外一个字典。提供的字典中的项会被添加到旧的字典中,若有相同的键则会进行覆盖。

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章